TLD-標籤與函數庫(三)

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函數處理方法


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章