路要走,生活还得继续。

Hardworking Now

JSP自定义标记taglib学习笔记(二)

六、Tag库描述(简称TLD)
Tag库是用xml语言描述的,TLD包括了tag库中所有tag标签的描述,它一般用来被jsp服务器用来校验tag的语法正确性,或者被jsp开发者用来开发新的标签。
TLD的文件扩展名必须为.tld,而且必须放在当前WEB应用的WEB-INF目录或其子目录中。一个TLD的内容的开头必须遵守标准的XML开头,用于描述DTD和xml的版本,例如:

<?xml version=”1.0″ encoding=”ISO-8859-1″ ?>
<!DOCTYPE taglib PUBLIC “-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN” “http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd”>

TLD必须以taglib来作为它的根元素,taglib的子元素如下表:
1)taglib的子元素

  • Element:Description
  • tlib-version:Tag库的版本
  • jsp-version:Tag库所需要的jsp的版本
  • short-name:助记符,tag的一个别名(可选)
  • uri:用于确定一个唯一的tag库
  • display-name:被可视化工具(诸如Jbuilder)用来显示的名称(可选)
  • small-icon:被可视化工具(诸如Jbuilder)用来显示的小图标(可选)
  • large-icon:被可视化工具(诸如Jbuilder)用来显示的大图标(可选)
  • description:对tag库的描述(可选)
  • listener:参见下面listener元素
  • tag:参见下面tag 元素
  • Listener元素:一个tag库可能定义一些类做为它的事件侦听类,这些类在TLD中被称为listener 元素,jsp服务器将会实例化这些侦听类,并且注册它们。Listener元素中有一个叫listener-class的子元素,这个元素的值必须是该侦听类的完整类名

2)Tag元素
每个tag元素在tag库中都要指出它的名字、类名、脚本变量、tag的属性。其中脚本变量的值可以直接在TLD中定义或通过tag附加信息的类来取得。每个属性描述了这个属性是否可以省略,它的值是否可以通过<%= …%>这样的JSP语法来获得,以及属性的类型。每一个tag在TLD中对应一个tag元素,下表是tag元素的子元素:

  • name:独一无二的元素名
  • tag-class:Tag标签对应的tag处理类
  • tei-class:javax.servlet.jsp.tagext.TagExtraInfo的子类,用于表达脚本变量(可选)
  • body-content:Tag标签body的类型
  • display-name:被可视化工具(诸如Jbuilder)用来显示的名称(可选)
  • small-icon:被可视化工具(诸如Jbuilder)用来显示的小图标(可选)
  • large-icon:被可视化工具(诸如Jbuilder)用来显示的大图标(可选)
  • description:此tag标签的描述
  • variable:提供脚本变量的信息(同tei-class)(可选)
  • attribute:Tag标签的属性名
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注