日期:2014-05-16 浏览次数:20388 次
做一个最简单的jsp的自定义标签库,主要是入门加熟悉。
1、写个jsp页面,在页面里面使用自定义库。customTag.jsp
?
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="pr" uri="/customUri"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>customTag.jsp</title> </head> <body> <br> <!-- 下面为自定义标签mytag --> <pr:mytag myattr="testString"></pr:mytag> </body> </html>
?
2、在web.xml中要配置自定义库uri为"/customUri"的引用,web.xml
?
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 标签库的引用定义 --> <taglib> <taglib-uri>/customUri</taglib-uri> <taglib-location>/WEB-INF/customTags.tld</taglib-location> </taglib> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>?
3、创建web.xml里面引用的WEB-INF文件夹下面的customTags.tld文件,也就是自定义标签库文件,xml格式的:
?
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>2.0</jsp-version> <short-name>sh</short-name> <tag> <!-- 页面中使用的标签名mytag --> <name>mytag</name> <!-- 这个标签所对应的标签类,继承自javax.servlet.jsp.tagext.TagSupport --> <tag-class>com.xxx.platform.tag.MyTags</tag-class> <!-- mytag标签中的myattr属性定义 --> <attribute id="my"> <name>myattr</name> <!-- 该属性在mytag标签中非必须 --> <required>false</required> <type>String</type> </attribute> </tag> </taglib>?
4、创建标签所引用的标签类,继承自javax.servlet.jsp.tagext.TagSupport类,com.xxx.platform.tag.MyTags.java:
?
package com.xxx.platform.tag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class MyTags extends TagSupport { // 对应到mytag标签中的属性myattr,必须要有set和get方法 private String myattr; public String getMyattr() { return myattr; } public void setMyattr(String var) { this.myattr = var; } public MyTags() { } @Override public int doAfterBody() throws JspException { return super.doAfterBody(); } @Override public int doEndTag() throws JspException { return super.doEndTag(); } @Override public int doStartTag() throws JspException { // 在mytag标签开始的时候做简单处理打印一句话。 JspWriter out = pageContext.getOut(); try { out.print("it is my custom tags and the myattr is "+myattr+"."); } catch (IOException e) { e.printStackTrace(); } return super.doStartTag(); } }
?5、将工程部署到tomcat中,运行,OK。
?
附件:目录结构和运行结果。