您的位置:首页 > 编程语言 > Java开发

【Java.Web】JSP —— 标签库taglib —— 自定义JSP标签 —— 标签库描述文件 TLD,发布

2014-10-06 15:41 591 查看

标签库描述文件

标签库描述文件(Tag Library Descriptor, TLD),采用XML文件格式,对标签库及库中的标签做了描述。

TLD文件中的元素可以分为3类,

<taglib> —— 标签库元素
<tag> —— 标签元素
<attribute> —— 标签属性元素

标签库元素 <taglib>

标签库元素<taglib>用来设定标签库的相关信息,它的子元素如下:

tlib-version —— 指定标签库的版本
jsp-version —— 指定JSP的版本
short-name —— 指定标签库默认的前缀名prefix
uri —— 设定标签库的唯一访问标识符
info —— 设定标签库的说明信息

标签元素 <tag>

标签元素<tag>元素用来定义一个标签,它的子元素如下:

name —— 设定标签的名字
tag-class —— 设定Tag的处理类
body-content —— 设定标签主体的类型
info —— 设定标签的说明信息

<body-content>子元素用于设定标签主体的类型,可选值包括:

empty —— 标签主体为空
scriptless —— 标签主体不为空,并且包括JSP的EL表达式和动作元素,但不能包含JSP的脚本元素。(动作元素指<jsp:include><jsp:forward>等action,脚本元素指<%! %>, <%% >, <%= %>这3种)
jsp —— 标签主体不为空,并且包含JSP代码。在JSP代码中可包含EL表达式,动作元素和脚本元素
tagdependant —— 标签主体不为空,并且标签主体内容由标签处理类来解析和处理。标签主体的所有代码都会原封不动地传给便签处理类,而不是把标签主体的执行结果传给标签处理类

标签属性元素 <attribute>

用来描述标签的属性,<attribute>元素的子元素如下:

name —— 属性名称
required —— 属性是否是必须的,默认为false
rtexprvalue _—— 属性值是否可以为基于“<%= %>”形式的Java表达式或EL表达式;若为false,只能为普通的字符串;(runtime expression value)

标签库描述文件示例

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd ">
<tlib-version>1.1</tlib-version>
<jsp-version>2.1</jsp-version>
<short-name>mytaglib</short-name>
<uri>/mytaglib</uri>

<tag>
<name>message</name>
<tag-class>com.gof.test.taglib.MessageTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>key</name>
<required>true</required>
</attribute>
</tag>

</taglib>


发布标签库,注册TLD

假设我们在WEB-IN/下添加一个tld文件mytablig.tld文件:

在web.xml中:

<!-- taglib configuration -->
<jsp-config>
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
</jsp-config>


在应用的JSP文件中:

*.jsp

<%@ taglib uri="/mytaglib" prefix="mm" %>


uri的值应该与tld描述文件中的值保持一致

如果使用第三方开发的标签库,请参见 使用第三方标签库 一节。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: