TagSupport 類別

 

TagSupport 類別


如果在自訂標籤庫時,並不需要對標籤本體作處理,則您可以繼承TagSupport類別,TagSupport類別實作了TagIterationTag介面,IterationTag介面則是Tag介面的子介面,TagSupport類別替您預先實作了這兩個介面中的方法,在繼承TagSupport之後,您視需要來改寫當中的一些方法(這是 Default Adapter模式)。

Tag
介面中與標籤處相關的方法主要有:doStartTag()doEndTag()。其中doStartTag()方法是遇到標籤開始時會呼叫的方法,其合法的回傳值是EVAL_BODY_INCLUDESKIP_BODY,前者表示將顯示標籤間的本體文字,後者表示不顯示標籤間的本體文字;doEndTag()方法是在遇到標籤結束時呼叫的方法,其合法的回傳值是EVAL_PAGESKIP_PAGE,傳回前者表示處理完標籤後繼承執行以下JSP網頁,傳回後者則表示不處理接下來的JSP網頁。

IterationTag
介面繼承Tag介面,在標籤處理上增加了doAfterBody(),這個方法是在顯示完標籤間文字本體之後呼叫的,其合法的回傳值有EVAL_BODY_AGAINSKIP_BODY,如果傳回前者,則會再顯示一次標籤間的文字本體,傳回後者則繼承執行標籤處理的下一步。

TagSupport
類別實作了TagIterationTag介面,其預設的回傳值是:doStartTag()回傳 SKIP_BODYdoAfterBodyTag()回傳SKIP_BODYdoEndTag()回傳EVAL_PAGE所以在繼承 TagSupport之後,如果沒有改寫任何的方法,則在標籤處理上執行的順序是:

doStartTag() -> 不顯示本體文字 -> doEndTag() -> 執行接下來的JSP網頁


如果您改寫了doStartTag(),則您必須指定回傳值,如果指定了EVAL_BODY_INCLUDE,則預設會照以下的順序執行:

doStartTag() -> 顯示本體文字 -> doAfterBodyTag()->doEndTag()->執行接下來的JSP網頁



發佈了59 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章