【原創】JSP標籤簡介

阿-甘發表於2008-09-04

  JSP標籤(JSP Tag Library)技術是在JSP1.1版本中才出現的,它支援使用者在JSP檔案中使用自定義的標籤。通過JSP標籤可以進一步使程式碼更簡潔,逐漸把需要使用Java類才能處理的邏輯分離出來,放到JSP標籤中,這樣也可以進一步提高程式碼的複用程度。

  要自定義JSP標籤要涉及到標籤的處理類、標籤的描述檔案以及如何引用標籤等幾個方面的內容。

  一、標籤的處理過程

  WEB容器解析JSP頁面時,如果發現自定義標籤,則會在JSP中尋找該標籤引用的URI:例如JSP檔案頭部的引用,此時它會找到該標籤的uri ,uri 的屬性“/hellokitty.tld”在web.xml中已經定義了,例如:

 
    / hellokitty.tld
    /WEB-INF/ hellokitty.tld
 

  此時WEB容器會通過uri在web.xml中查詢到該標籤的描述檔案tld,例如“/WEB-INF/ hellokitty.tld”。而在tld描述檔案中又定義了該標籤的處理類,例如hellokitty.tld中有如下定義:

   
      sayHello
      com.free.taglib.HelloKittyTag
      empty
   

  要建立自定義的標籤,可分為如下幾步:

  1. 建立標籤描述檔案。

  在WEB-INF下新建一個tld檔案,該檔案描述了此tld檔案將由哪些標籤處理類完成操作,並且定義了該標籤的屬性。

  2. 建立標籤處理類。

  標籤處理類繼承於TagSupport類或TagSupport類的子類,可覆蓋處理標籤的方法,例如doEndTag()方法,實現自定義標籤。

  3. 修改web.xml檔案。

  在web.xml中下新增節點,將標籤的uri與具體標籤描述檔案繫結,例如:


    / hellokitty.tld
    /WEB-INF/ hellokitty.tld

  4、在JSP頁面中使用標籤

  首先在頁面中匯入標籤,例如表示標籤字首為“dada”的標籤將呼叫uri指定的標籤,uri可以隨便起名字,但一定要和web.xml中定義的uri相對應。匯入標籤後就可以在JSP頁面中直接使用標籤,例如:

  

  二、標籤的描述檔案

  標籤的描述檔案是一個描述整個標籤庫標記資訊和標籤庫中每個標籤處理器以及其屬性的XML文件。可以包含如下的一些元素。

  1. tlibversion:標籤庫版本號,是一個點式十進位制數(例如1.0),最多為4組小數點分隔的數字組成。

  2. jspversion:標籤庫所需的JSP規範最低版本,例如JSP1.1。

  3. shortname:標籤庫的縮寫名,JSP可以使用該名字作為庫中標籤的預設字首。

  4. uri:標籤庫唯一URI的元素。

  5. info:標籤庫描述資訊。

  6. tag:加入標籤,描述組成庫的每個標籤。

  在tag元素中包含標籤及其屬性的資訊:

  1. name:與標籤庫的名字字首一起使用的標籤的名字, 是JSP容器唯一的標籤標識。

  2. tagclass:實現標籤的標籤處理器類的全名。

  3. teiclass:標籤附加資訊(TEI)類的全名,TEI類給出關於標籤處理器建立變數及有效性驗證的資訊。

  4. bodycontent:描述標籤處理器如何使用標籤體的內容,有三種取值:

  l empty:表示標籤體必須為空;

  l JSP:表示指令碼元素和模板及其它標籤一樣被評估。

  l tagdependent:內容被原封不動寫入BodyContent,其它指令碼元素以原始碼形式出現,而不被JSP容器解釋。

  5. info:標籤的描述性資訊。

  6. attribute:使用標籤時被編碼的屬性資訊,用於定義標籤的屬性。

  “attribute”元素中又可以包含下面幾個元素:

  1. name:屬性的名字。

  2. required:屬性是否必須。

  3. rtexprvalue:屬性值能否用表示式指定。

  標籤描述檔案中tag和attribute是可以有子元素的,例如:


    1.0
    1.2
    message
    http://www.free.com/taglibs/HelloKitty
        
   
      sayHello
      com.free.taglib.HelloKittyTag
      empty
     
        key
        true
     

   

  如果要在JSP頁面中實現JSP標籤,必須首先定義實現標籤的類,然後在標籤庫描述檔案(TLD)中將寫好的類對映成JSP標籤,最後在JSP檔案中使用定義好的標籤,就可以生成動態的JSP內容。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13081368/viewspace-441762/,如需轉載,請註明出處,否則將追究法律責任。

相關文章