在开发标签是一般有两种选择:一种是直接实现原始的接口,另一种是从TagSupport类继承..
我先说说我对d第二中的理解吧(从TagSupport类继承):
第一步:首先应该先写一个类继承TagSupport类,覆盖其doStartTag()和doEndTag()方法;(只是覆盖两个方法就可以开发出一个标签了,所以这种方法还是比较简单的!)
第二步:编写标签库描述:新建一个.tld的文件,(一个tld的文件之中可以描述多个的标签):在里面写入:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<!-- 标签库描述符 -->
<taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
<!-- taglib的版本 -->
<tlib-version>1.0</tlib-version>
<!-- jsp版本 -->
<jsp-version>1.2</jsp-version>
<!-- 描述文件名 -->
<short-name>/TagBean</short-name>
<!—- 以下是对一个标签的描述(可以写多个) -->
<tag>
<!-- 自定义标签的名字 -->
<name>helloTag</name>
<!-- 该标签所映射到的类 -->
<tag-class>TagTest.HelloTag</tag-class>
<!-- bady的内容设置为空的 -->
<body-content>empty</body-content>
</tag>
</taglib>
第三步:要实用自定义标签还要在web.xml中配置指定对标签的引用.在web.xml中添加以下的内容来指定这个引用:
<web-app...>
<taglib>
<!-- 对tld文件应用的名称 -->
<taglib-uri>/hellotag</taglib-uri>
<!-- 指定所要引用的tld文件所在的位置 -->
<taglib-loction>/WEB-INF/TagTest.tld</taglib-loction>
</taglib>
<web-app...>
第四步:在jsp中实用自定义标签: 要在jsp中加入以内容:
<%@ taglib uri="/hellotag" prefix="hello"%>其中uri是与web.xml文件中的<tag-uri>中的名字是相对应的!prefix表示标签的前导,就算是在实用标签的时候是这样的:<hello:hellotag></hello:hellotag>
这样就可以实用自定义标签了,呵呵,标签在实用的过程中会自动的调用你覆盖的那两个方法的!
一. 继承BodyTagSupport类之后,其中的方法的执行顺序是:
1.doStartTag();2.setBodyContent();3.doInitBody();4.doAfterBody();5;doEndTag();