1.jsp自定義標籤組成部分:web.xml載入標籤庫,標籤庫描述檔案(tld),標籤處理程式類。
2. 在自定義標籤的起始和結束標籤之間的部分為標籤體(body)。
3. 分別介紹一下jsp自定義標籤的三個組成部分,以輸出經典的 helloworld為例。
ⅰ.修改web.xml載入標籤庫
ⅱ.描述標籤庫檔案(tld)
tld檔案通過 myeclipse 可以新建獲得,按照myeclipse提示一步步走就可以。
ⅲ.標籤處理類
需要繼承tagsupport 或者bodytagsupport
區別就是 主要看標籤處理類是否要讀取標籤體的內容和改變標籤體返回的內容,如果不需要就用tagsupport,否則就用bodytagsupport
一、關於執行方法
無論繼承哪個類,都可能需要重寫這麼幾個方法,它們的執行順序是:
dostarttag()→doinitbody()→setbodycontent()→doafterbody()→doendtag();
除了setbodycontent()方法之外,其它幾個方法都有乙個 int 型別的常量返回值,有以下這麼幾種情況:
eval_body_include:把body讀入存在的輸出流中,dostarttag()函式可用。
eval_page:繼續處理頁面,doendtag()函式可用。
skip_body:忽略對body的處理,dostarttag()和doafterbody()函式可用。
skip_page:忽略對餘下頁面的處理,doendtag()函式可用。
eval_body_buffered:申請緩衝區,由setbodycontent()函式得到的bodycontent物件來處理tagbody,
如果類實現了bodytag,那麼dostarttag()可用該返回值,否則非法。
-------------也必須要實現方法setpagecontext(pagecontext arg0)
eval_body_again:請求繼續處理body,返回自doafterbody(),這個返回值在你製作迴圈tag的時候是很有用的。
在執行方法中主要會到以下執行語句,至於標籤屬性,會跟標籤執行類的屬性相同。
jspwriter jw = pagecontext.getout();
jw.print(sb.tostring());
//得到標籤體內容
因為實現了介面bodytag,實現了方法setbodycontent(bodycontext arg0)
所以就得到了 bodycontext 物件
標籤體的內容可以這麼獲取:this.bodycontent.getstring()
二、關於執行屬性
標籤類的屬性和標籤中的屬性名字要一致,並且標籤類中要有相應的set,get方法。
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...
jsp自定義標籤
主要步驟 1.建立自定義標籤類,繼承tagsupport類,並覆蓋它的dostarttag doendtag 等方法。2.在web inf建立標籤庫描述檔案 tld。3.在web.xml中配置jsp標籤的uri和路徑。4.在需要使用此標籤的jsp頁面頭部引入。更詳細的開發步驟,例項講解以及注意事項,...