自定义标签实现步骤:
1、 自定义类 MyTagSupport extends TagSupport
1-2、 重写doStartTag()方法处理开始标签 ---------><XXXX >
返回SKIP_BODY(跳过标签体)
返回EVAL_BODY_INCLUDE(显示标签间的文字)
1-2、 重写doEndTag()方法处理结束标签 ----------></XXXX>
EVAL_PAGE (处理完标签后继续执行以下的JSP网页)
SKIP_PAGE(不处理接下来的JSP网页 )
默认
doStartTag()返回SKIP_BODY,
doAfterBody()返回SKIP_BODY,
doEndTag()返回EVAL_PAGE.
2 、编写 标签描述文件 XXX. tld ,一个tld文件可以配置多个不同标签
他是XMl文件,最好到jdk中复制它的基本框架
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<!--上面的原封不动copy-->
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>mytag</short-name>
<uri>/mytag</uri>
<!-- 这里的uri自定义的 但是一定要和jsp页面和web .xml配置中一致 -->
<description>Custom Tag Demo</description>
<!----下面是对标签的描述,一个标签描述写在一个<tag>中,这个文件中可以描述多个自定义标签---->
<tag>
<description>分页的标签</description>
<name>mytagname</name> <!-------jsp页面要使用的标签名 自己定义 ---------->
<tag-class>package.MyTagSupport</tag-class><!-----处理标签的Java类完整路径,带包名的-------->
<body-content> empty </body-content>
<!---指明标签体的内容,单标签:empty 双标签:JSP----------->
<!---下面是对标签的属性的描述,如果有属性的话-->
<attribute>
<description>方向</description> <!-----属性的说明------>
<name>direction</name> <!-----属性名称------->
<required>true</required><!-----是否必须有该属性------>
<rtexprvalue>false</rtexprvalue>
<!----- 是静态值还是动态值,true代表动态(EL),false代表静态(String)------->
</attribute>
</tag>
</taglib>
3 、 web.xml中注册自己的标签 (一个tld 只注册一次)
<taglib>
<taglib-uri> /mytag</taglib-uri> //同tld中uri
<taglib-location> /WEB-INF/MyUpDownPage.tld </taglib-location>
<!-- 指明tld文件详细位置,一般tld文件放在WEB-INF目录下,但是不要放在lib和classes 中 -->
</taglib>
4、页面使用:
4-1: 导入自定义标签 uri:同web.xml中一致 prefix:标签前缀,可以自己定义值
<%@ taglib uri="/mytag" prefix="p"%>
4-2:页面使用
<p:mytagname direction="up" />
<p:mytagname direction="down" />