JSP 自定义标签体系结构介绍
标签处理程序
在创建自定义标签之前,需要创建一个 标签处理程序。标签处理程序是一个执行自定义标
签操作的 Java 对象。在使用自定义标签时,要导入一个 标签库 —— 即一组标签/标签处
理程序对。通过在 Web 部署描述符中声明库导入它,然后用指令 taglib 将它导入 JSP 页。
如果 JSP 容器在转换时遇到了自定义标签,那么它就检查 标签库描述符(tag library
descriptor) (TLD) 文件以查询相应的标签处理程序。TLD 文件对于自定义标签处理程
序,就像 Web 部署描述符对于 servlet 一样。
在运行时,JSP 页生成的 servlet 得到对应于这一页面所使用的标签的标签处理程序的一
个实例。生成的 servlet 用传递给它的属性初始化标签处理程序。
标签处理程序实现了生存周期方法。生成的 servlet 用这些方法通知标签处理程序应当启动、
停止或者重复自定义标签操作。生成的 servlet 调用这些生存周期方法执行标签的功能。
标签的类型
可以定义两种类型的标签:
javax.servlet.jsp.tagext.Tag
javax.servlet.jsp.tagext.BodyTag
对 正文 进行操作 —— 即对在开始和结束标签之间的内容进行操作的 —— 标签必须实现
BodyTag 接口。在这个教程中,我们将称这些标签为 正文标签。我们将不对其正文操作
的标签称为 简单标签。简单标签可以实现 Tag 接口,尽管不要求它们这样做。要记住不
对其正文操作的标签仍然 有 正文,只不过,它的标签处理程序不能读取这个正文。
jsp 自定义标签
关键词: jsp 自定义标签
定义标签
要定义标签,需要:
• 为该标签开发一个 tag handler 和 helper 类
• 在标签库描述符中声明这个标签
本节描述标签 handler 和 TLD 的属性,并解释如何为在前面几节中介绍的标签开发 tag
handler 和库描述符元素。
标签 handler
标签 handler 是由 Web 容器调用的一个对象,用于执行带有自定义标签的 JSP 页面时对这
个标签进行判断。标签 handler 必须实现 Tag 或者 BodyTag 接口。接口可以用于接受现有
Java 对象并使它成为标签 handler。对于新创建的处理器,可以用 TagSupport 和
BodyTagSupport 类作为基类。这些类和接口包含在 javax.servlet.jsp.tagext 包中。
JSP 页面的 servlet 在对标签处理的不同阶段调用由 Tag 和 BodyTag 接口定义的标签
handler。遇到自定义标签的开始标签时,JSP 页面的 servlet 调用方法以初始化相应的
handler,然后调用 handler 的 doStartTag 方法。遇到自定义标签的结束标签时,调用处理
器的 doEndTag 方法。在标签 handler 需要与标签的正文交互时调用其他方法,见带正文
评论0