更新时间:2024-02-29 来源:黑马程序员 浏览量:
前面我们已经学习了自定义标签的基本知识,接下来讲解如何开发一个自定义标签。开发一个自定义标签至少需要三个步骤,具体如下。
1.编写标签处理器
开发自定义标签的核心任务就是要编写作为标签处理器的Java类。
(1)传统标签开发,需要实现javax.servlet.jsp.tagext.Tag接口。
(2)简单标签开发,需要实现javax.servlet.jsp.tagext.SimpleTag接口。
Tag接口和SimpleTag接口定义了JSP页面与标签处理器类之间的通信规则。如果JSP引擎在编译JSP页面时遇到自定义标签,传统标签将会调用标签处理器类的doStartTag()方法,简单标签将会调用标签处理器类的doTag()方法。
2.编写标签库描述符文件
要想让JSP引擎在遇到自定义标签时,能找到对应的标签处理器类,还必须编写一个标签库描述符(Tag Library Descriptor)文件,简称TLD文件。TLD文件与标签处理器之间的关系就如同web.xml文件与Servlet之间的关系,一个标签处理器类要想被JSP容器找到并调用,必须在TLD文件中进行注册,一个TLD文件中可以注册多个标签处理器类,每个自定义标签的注册名称不能相同,同一个TLD文件中注册的多个标签处理器类就形成了一个自定义标签库。TLD文件是基于XML文件的,其内容的编写需要遵循XML语法规范。
下面编写一个名为mytag.tld的标签库描述符文件,具体示例如下。
<? xml version="1.0" encoding="GBK" ?> <!--自定义标签的根标签是<taglib>,根标签使用的是schema约束,根标签的属性及其取值, 通常是固定不变的--> <taglib xmlns=" 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"> <!--TLD的头文件,这部分信息通常是固定不变的--> <!--指定标签库的版本号--> <tlib-version>1.0</tlib-version> <!--指定标签库的名称--> <short-name>SimpleTag</short-name> <!--指定标签库的URI--> <uri>http://www.itcast.cn</uri> <!--注册一个自定义的标签--> <tag> <!--指定自定义标签的注册名称--> <name>ipTag</name> <!--指定标签的标签处理器类--> <tag-class>cn.itcast.chapter09.tag.ipTag</tag-class> <!--指定标签体的类型,empty表示标签体为空--> <body-content>empty</body-content> </tag> </taglib>
在上述tld文件中,通过注释的方式为每个元素进行了说明。
本文版权归黑马程序员Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:黑马程序员Java培训学院