tld标签文件的格式解释
tld是taglib description 的缩写
定制标签拼图中的最后一块是TLD(标签库描述符)文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<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 web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>function</short-name>
<uri>http://hellking.com/function</uri>
<display-name>JSTL sql RT</display-name>
<description>my function</description>
<tag>
<name>tvBusinessItemNames</name>
<tag-class>nettv.web.taglib.TVBusinessItemNamesTag</tag-class>
<body-content>EMPTY</body-content>
<display-name></display-name>
<description>
<![CDATA[....]]>
</description>
<attribute>
<name>type</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>
<![CDATA[...]]>
</description>
</attribute>
<attribute>
<name>code</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>
<![CDATA[...]]>
</description>
</attribute>
</tag>
<function>
<name>formatPer</name>
<function-class>com.jspdev.ch16.PerUtil</function-class>
<function-signature>java.lang.String formatPer(float)</function-signature>
</function>
</taglib>
可以看到,TLD文件只不过是一个XML文件。根标签是<taglib>,它包含一个或者多个<tag>标签,该元素用来声明定制标签。表4-1、表4-2和表4-3解释了TLD中的每个标签。注意每个<taglib>都必须包含一个或者多个<tag>声明。
表4-2 <taglib>的子标签
taglib TLD文件的根标签
tlibversion 此标签库的版本
jspversion 此标签库依赖的JSP版本。这里使用1.1
shortname 当在JSP中使用标签时,此标签库首选或者建议的前缀。当然可以完全忽略这个建议
tag 包含针对此标签库中的一个标签的元数据
function函数
表4-2 <tag>的子标签
name 标签名称
tagclass Java标签处理器类的名称。注意这是处理器类的全限定名称,比如net.thinksquared.tags. MessageWriteTagHandler
bodycontent 此标签的主体部分的内容。使用JSP
attribute 包含了此标签的一个属性的元数据
表4-3 <attribute>的子标签
name 属性的名称。很明显它在该标签中必须是唯一的
required 指示该标签是必需的(true)或者可选的(false)
表4-4 <function>的子标签
name函数引用名称
function-class函数处理类
function-signature函数处理方法
原文:http://8758335.blog.51cto.com/8748335/1385991