【JavaWeb探究】自定義JSP標籤(一)

     直到JSP1.1中才出現允許自定義標籤,所謂自定義標籤,是允許開發人創建客戶化的標籤,來滿足用戶的需要。我們現在的項目中就用到了自定義JSP標籤,我特意梳理一下自定義標籤的過程,然後帶着大家手動創建一下自定義JSP標籤。


     創建自定義標籤的過程:

》》》1.首先,編寫用於處理該標籤的類

》》》2.創建一個TLD(Tag Library Descriptor,標籤庫描述符)文件,命名爲xxx.tld,在這個文件中定義標籤庫和你要定義的標籤,這個文件一般存放在WEB-INF/xxx.tld.

》》》3.在web.xml文件中配置<taglib>元素,在<tgblib>中包含兩個子元素,<taglib-uri>和<tag-lication>,其中<taglib-uri>指定標籤庫的URI,<taglib-location>指定標籤庫的TLD文件的存放位置。

》》》4.在aaa.jsp文件中使用你所要定義的標籤,首先在aaa.jsp文件中引入你所定義的標籤庫的taglib標籤的指令。<%@ taglib uri="/自定義標籤庫的名稱" prefix="mm" %>。注意:其中,prefix屬性用來爲自定義標籤庫指定一個前綴"mm",接下來aaa.jsp中就可以以<mm:xxx>的形式來使用自定義標籤了。


     下面我們來說一下,Servlet容器是如何來處理自定義標籤的。瞭解了這個原理,對學會使用自定義標籤很有用。首先,當客戶端請求訪問aaa.jsp時,Servlet容器會按如下步驟處理aaa.jsp中的<mm:xxx>標籤。

》》》1.<mm:xxx>的前綴爲"mmm",與aaa.jsp中的如下taglib指令匹配

<%@ taglib uri="/自定義標籤庫的名稱" prefix="mm" %>

因此得知自定義標籤來自uri爲"/自定義標籤庫的名稱"的標籤庫。

》》》2.在web.xml中對"/自定義標籤庫的名稱"的配置中找到<taglib-location>標籤標記標籤庫的TLD文件爲"WEB-INF/xxx.tld"

》》》3.在WEB-INF/xxx.tld文件中對名爲xxx的標籤定義中尋找<tagclass>標籤的得到該標籤的處理類。因此,當Servlet容器運行aaa.jsp時,如果遇到<mm:xxx>標籤,就會自動加載WEB-INF/classes/xxx目錄下的標籤處理類的.class文件。


     爲了便於組織和管理標籤,可以把一組功能相關的標籤放在同一個標籤庫中,開發包含自定義標籤庫包含如下步驟:

》》》1.創建自定義標籤的處理類(Tag Handler Class)

》》》2.創建TLD標籤庫的描述文件(Tag Library Despriptor)


     所以會按照如下步驟在Web應用中使用標籤庫:

》》》1.在標籤處理類及相關類的.class文件存放在WEB-INF\classes目錄下

》》》2.把TLD標籤庫描述文件存放在WEB-INF目錄或者其自定義的目錄下

》》》3.在web.xml文件中聲明所引用的標籤庫

》》》4.在JSP文件中使用標籤庫中使用的標籤


     好了,這篇博客就介紹到這兒,下篇博客我們來親手實踐一下創建一個自定義標籤,下篇博客見。 


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