編寫JSP自定義標籤

2021-08-25 23:46:43 字數 1451 閱讀 3594

可以使用jsp自定義標籤來實現簡單的**模板.

自定義標籤可以通過傳統的繼承tagsupport或******tagsupport並實現相關方法,然後宣告使用tag描述符進行宣告.

這裡要說的是一種更加簡單的方式,tagfiles.

tag file其實就是乙個jsp頁面,只是把副檔名由.jsp變成了.tag,並放置在指定的目錄下.

tagfile中不能使用page指令,作為替代可以使用tag指令,在tag指令中宣告pageencoding來指定檔案編碼,這尤為重要.

attribute指令用來指定呼叫tag可以使用的引數.

例如這裡的model就是在tagfile中通過attribute指令進行指定的.

具體的attribute指令如下

<%@attribute name="pageinfo" type="com.rmc.web.utils.pages" rtexprvalue="true" required="true" %>
這裡宣告了乙個pageinfo屬性,並指定了引數的具體型別.rtexprivalue="ture"表明該屬性接受el表示式,false表示不接受. required="true"表示該屬性為必須的,預設值是false.乙個簡單的tagfile如下

<%@tag body-content="empty" pageencoding="gbk" %>

<%@attribute name="pageinfo" type="com.rmc.web.utils.pages" rtexprvalue="true" required="true" %>共$條 首頁 

末頁 $/$頁   

轉到:第  頁 

每頁  條 

tag指令中有乙個body-content引數,取值有三個scriptless(不接受jsp指令碼,接受普通文字和el.這也是預設值),empty(不接受標籤體),tagdependent(將標籤體視為普通文字).可見表標籤體是絕對不接受jsp指令碼的,當然使用標籤的目的就是為了不直接在jsp中使用指令碼.當該引數取值不為empty時,在tagfile中可以使用引用標籤體的內容.

tagfile編寫好之後,需要放置在應用的web-inf/tags/目錄或其子目錄下.如果你的tagfile要作為乙個庫發布,需要將tagfile放置在jar的meta-inf/tags/目錄或其子目錄下,同時還要編寫tag描述符(.tld)檔案放置在meta-inf/tlds目錄下.有關.tld的編寫也比較簡單只是把tagfile中的各種指令使用xml檔案重新宣告一次.具體寫法就不討論了,可以參考其他文件.

有了tagfile後,在jsp中引用時想引用jstl一樣,要首先使用taglib指令進行宣告.例如

<%@ taglib prefix="v" tagdir="/web-inf/tags" %>這裡與引用jstl不同的是將taguri換成了tagdir,其值就是放置tagfile的目錄.

JSP自定義標籤

1.jsp自定義標籤組成部分 web.xml載入標籤庫,標籤庫描述檔案 tld 標籤處理程式類。2.在自定義標籤的起始和結束標籤之間的部分為標籤體 body 3.分別介紹一下jsp自定義標籤的三個組成部分,以輸出經典的 helloworld為例。修改web.xml載入標籤庫 描述標籤庫檔案 tld ...

JSP自定義標籤

1 開發自定義標籤庫 繼承父類 tagsupport重寫dotag 方法 2 建立tld檔案 1.0mytaglib web inf tlds diego.tld hellotag hellotag empty 3 使用標籤庫 taglib uri web inf tlds diego.tld pr...

JSP自定義標籤

測試環境 tomcat5.5 新增的jar包 jstl.jar standard.jar 自定義jsp標籤的處理過程 來自網上 1 在jsp中引入標籤庫 taglib prefix taglibprefix uri tagliburi 2 在jsp中使用標籤庫標籤 3 web容器根據第二個步驟中的p...