JSP標籤處理常式學習小結——簡單標籤

來源:互聯網
上載者:User
建立一個簡單標籤的步驟:
  1. 建立實現了 Tag 介面(準確地說是 javax.servlet.jsp.tagext.Tag)的標籤處理常式類。
  2. 建立一個 TLD 檔案。
  3. 在標籤處理常式 Java 類中建立屬性。
  4. 在 TLD 檔案中定義與標籤處理常式 Java 類中定義的屬性對應的屬性。
  5. 在 TLD 檔案中聲明 scriptlet 變數。
  6. 實現 doStartTag() 方法。在標籤處理常式類中,根據屬性將值設定到 scriptlet 變數中。

這裡將建立一個簡單標籤處理常式,這個標籤將執行個體化一個 map。使用這個標籤的開發人員可以指定要執行個體化的 map 的類型 ―― HashMapTreeMapFastHashMap 或者 FastTreeMapFastHashMapFastTreeMap 來自 Jakarta Commons Collection library (有關連結請參閱 參考資料)。開發人員還可以指定標籤所在的範圍 ―― 頁、請求、會話還是應用程式範圍。

為了編寫標籤處理常式,必須實現 Tag 介面。如前所述,這個介面用於不操縱其標籤本文的簡單標籤處理常式。

現在,不必直接實現 Tag 介面,相反,用 map 定義的(map-defining)標籤將繼承 TagSupport 類。這個類以有意義的預設方法實現 Tag 介面,因而使開發自訂標籤更容易 (有關 TagSupport 的 API 文檔的連結請參閱 參考資料)。
 

在預設情況下,TagSupport 實現了 doStartTag() 以使它返回 SKIP_BODY 常量,表示將不對標籤本文進行判斷。 此外,在預設情況下,doEndTag() 方法返回 EVAL_PAGE,它表示 JSP 運行時引擎應當對頁面的其餘部分進行判斷。 最後,TagSupport 實現了 release(),它設定 pageContext 及其父元素為 null

定義了標籤處理常式後,現在需要增加從處理常式到 TLD 檔案中的標籤的映射。

TLD 檔案對自訂標籤處理常式的作用就像 Web 部署描述符對 servlet 的作用。 TLD 檔案列出了從標籤名到標籤處理常式的映射。 這個檔案中的大多數資料都是在 JSP 頁轉換時使用的。 TLD 檔案通常儲存在 Web 應用程式的 WEB-INF 目錄,並在 web.xml 檔案中聲明。它們一般用 .tld 副檔名結束。

TLD 檔案有一個 導言(preamble),在這裡標識 JSP 技術的版本和使用的標籤庫。這個導言通常看起來像這樣: 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>

    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>map</short-name>

讓我們更詳細地分析一下這些標籤:

  • TLD 檔案的根項目是 taglibtaglib 描述了一個 標籤庫 ―― 即一組標籤/標籤處理常式對。
  • 因為我們使用的是 JSP 版本 1.2,所以在這個例子中需要 tlib-versionshort-name 元素。
  • tlib-version 元素對應於標籤庫版本。
  • jsp-version 對應於標籤庫所依賴的 JSP 技術的版本。
  • short-name 元素定義了 IDE 和其他開發工具可以使用的標籤庫的簡單名。
  • taglib 元素包含許多 tag 元素,標籤庫中每一個標籤有一個 tag 元素。

待續...

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.