自定義jsp標籤的意義:
便捷自己的開發,能夠根據自己的需求來調整標籤的功能,動態的實現一些功能,提高開發效率。
1. 自定義標籤的開發及使用步驟
1.1 建立乙個標籤助手類(繼承bodytagsupport)
標籤屬性必須與助手類的屬性對應、且要提供對應get/set方法
1.2 建立標籤庫描述檔案(tld),新增自定義標籤的配置
注:tld檔案必須儲存到web-inf目錄或其子目錄
jstl標籤庫
1.3 在jsp通過taglib指令匯入標籤庫,並通過指定字尾訪問自定義標籤
助手類每個標籤都要有它相應的助手類來幫助它實現功能,而助手類介紹繼承了bodytagsupport這個類的來描述這個標籤實現功能的乙個類。
在助手類的週期中,主要有3個方法來支撐它實行。
1、dostarttag() 執行到開始標籤時執行的動作
2、doafterbody() 介於內容之間執行的動作
3、doendtag() 執行到結束標籤時執行的動作
首先我們自定義建乙個c:if和c:foreach的a.tld檔案,用來描述我們的標籤
catches any throwable that occurs in its body and optionally
exposes it.
demo
zking.jsp.demotag
jspname of the exported scoped variable for the
exception thrown from a nested action. the type of the
scoped variable is the type of the exception thrown.
test
false
false
生命週期
我們能通過自定義標籤來實現功能,主要是依靠它的助手類來實現的,所以相對的自定義標籤也有它相對的一套方法流程,也就是我們的生命週期。
標籤的生命週期主要分為3條線:
一、由dostarttag開始,返回skip_body直接進入doendtag方法,返回skip_page或eval_page結束
二、由dostarttag開始,返回eval_body_include進入doafterbody方法,然後返回skip_body直接進入doendtag方法,返回skip_page或eval_page結束
三、由dostarttag開始,返回eval_body_include進入doafterbody方法,然後返回eval_body_again再次進入doafterbody,直到條件滿足,返回skip_body進入doendtag方法,返回skip_page或eval_page結束
public class demotag extends bodytagsupport
public void settest(string test)
@override
public int dostarttag() throws jspexception
@override
public int doendtag() throws jspexception
@override
public int doafterbody() throws jspexception
}
JSP生命週期
jsp生命週期就是從建立到銷毀的整個過程,類似於servlet生命週期,區別在於jsp生命週期還包括將jsp檔案編譯成servlet。以下是jsp生命週期中所走過的幾個階段 編譯階段 servlet容器編譯servlet原始檔,生成servlet類 初始化階段 載入與jsp對應的servlet類,建...
JSP 生命週期
在本章中,我們將討論jsp的生命週期。理解jsp底層功能的關鍵是理解它們遵循的簡單生命週期。jsp生命週期定義為從建立到銷毀的整個過程。這類似於servlet生命週期,但需要額外的步驟才能將jsp編譯為servlet。以下是jsp遵循的路徑 當瀏覽器請求jsp時,jsp引擎首先檢查是否需要編譯頁面。...
JSP自定義標籤
1.jsp自定義標籤組成部分 web.xml載入標籤庫,標籤庫描述檔案 tld 標籤處理程式類。2.在自定義標籤的起始和結束標籤之間的部分為標籤體 body 3.分別介紹一下jsp自定義標籤的三個組成部分,以輸出經典的 helloworld為例。修改web.xml載入標籤庫 描述標籤庫檔案 tld ...