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

原创 2014年10月06日 15:41:59

标签库描述文件

标签库描述文件(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描述文件中的值保持一致


如果使用第三方开发的标签库,请参见 使用第三方标签库 一节。








相关文章推荐

java web taglib自定义标签的练习

整理了一下以前的练习,把jsp tag的练习记录一下: 新建mytag.tld:放置在web-inf下面: 1.0 1.1 displayDate c...
  • zyujie
  • zyujie
  • 2013年03月29日 11:27
  • 7420

taglib 标签库分析

标签库第一次听的时候感觉没什么,html就是标签语言,里面有的是标签。 后来接触struct的自定义标签才知道它的始末,html里面的是标签没错,直接拿过来就能使用,但是后台怎么处理的知道吗?自定义...

自定义标签 (Taglib) 续一

自定义标签  (Taglib) :      可重用的标签可处理复杂的逻辑运算和事务,或定义jsp网页的输出内容和格式 自定义标签所涉及到的接口与类的层次结构 创建客户化...

taglib标签库详解

JSP实现自定义标签Taglib重点总结

Taglib指令介绍 Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。 比如struts中支持的标签库,html标签库、bean标签库、logic标签库。 ...

Taglib自定义标签之三简单仿JSTL中带标签体的ForEach循环

上2篇文章分别了介绍了taglib的无属性状态和有带属性状态,但是都是分别都是独立的闭标签,这次带来的是带属性的和带标签体的例子,仿照jstl中的forEach循环构造一个简单的循环标签. Java代...
  • aionbo
  • aionbo
  • 2017年02月09日 21:53
  • 364

Jsp 应用之自定义标签库(taglib)及配置

前段时间看到关于taglib的一些应用,感觉很神秘,刚开始的时候还弄不明白taglib到底有什么作用,在图书馆查了几次资料,终于搞明白了,今天学习taglib的编写及配置,现在写出今天学习的总结。ta...
  • joliny
  • joliny
  • 2007年09月19日 16:14
  • 2241

关于在eclipse新建tld标签库描述文件的问题

要在eclipse中新建.tld文件,在右击项目选择new无法直接找到,要右击项目选择new-other-xml-xml(BasicTemplates)-next-选择CreatXmlfile fro...

(五)标签库tld描述文件格式

标签库描述文件格式好下:    "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">  版本号描述  1.1  指定...

java taglib 的使用

以前一哥们跟我说  他项目经理写的自定义标签可以 c:foreach 进行循环  感觉好高端的感觉啊 ! 呵呵呵~~ 当时觉得自己写的标签好像从来没有这种功能啊。。。 但是因为没有代码 我也不知道是怎...
  • Ouvidia
  • Ouvidia
  • 2014年02月21日 12:22
  • 4314
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java.Web】JSP —— 标签库taglib —— 自定义JSP标签 —— 标签库描述文件 TLD,发布
举报原因:
原因补充:

(最多只允许输入30个字)