自定义标签的开发步骤:定义一个标签处理类;定义描述文件;根据描述文件处理标签
定义描述文件的过程:在WEB-INF下创建一个tld文件,复制apache-tomcat-7.0.22\webapps\examples\WEB-INF\jsp2目录下的jsp2-example-taglib文件的头信息和一个<tag>标签内信息到这个事先创建好的tld文件中,并作出相应修改。
tld部分文件内容的解释:
- <?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/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
-
- version="2.0">
-
-
-
- <!—-此标签库的一个简短描述-->
-
- <description>there are custom tags of tag</description>
-
- <!—-此标签库的版本,由标签开发者自行决定(必须元素)-->
-
- <tlib-version>1.0</tlib-version>
-
- <!—-定义一个简短的名称,主要是给一些工具使用(必须元素)-->
-
- <short-name>tag</short-name>
-
- <!—-定义此标签库的uri路径,用于唯一标识该数据库,便于页面的引用-->
-
- <uri>http://cn.csdn.web.tag</uri>
-
- <!—-此标签库中的一个标签处理器的声明-->
-
- <tag>
-
- <!—-该标签处理器的一个简短描述-->
-
- <description>view ip of client</description>
-
- <!—-该标签名称(必须元素)-->
-
- <name>ViewIP</name>
-
- <!—-该标签处理类的全限定名(必须元素)-->
-
- <tag-class>cn.csdn.web.tag.ViewIP</tag-class>
-
- <!—-指明该标签主题类型)-->
-
- <body-content>empty</body-content>
-
- </tag>
-
- </taglib>
tld文件中要注意的事项:
必须建立在WEB-INF目录下;
<body-content></body-content>中指定标签体的格式有四种:
empty:表示标签没有标签体
scriptless:表示标签体可以包含EL表达式和JSP的动作元素,但不能包含脚本表达式
JSP:表示标签体可以包含JSP代码
tagdependent:表示标签体由标签本身去解析处理。若指定tagdependent,那么在标签体中所写的代码将作为纯文本原封不动地传给标签处理类,而不是将执行结果传给标签处理类