TagSupport

 

在上一篇自定義標籤的文章中,講到了自定標籤的步驟,其中有一步是集成tagSupport。對tagSupport類也不是很熟悉,特此學習tagSupport,在此做下簡要筆記。


1. TagSupport與BodyTagSupport的區別

    TagSupport與BodyTagSupport的區別主要是標籤處理類是否需要與標籤體交互,如果不需要交互的就用   TagSupport,否則如果不需要交互就用BodyTagSupport。

    交互就是標籤處理類是否要讀取標籤體的內容和改變標籤體返回的內容。

    用TagSupport實現的標籤,都可以用BodyTagSupport來實現,因爲BodyTagSupport繼承了          TagSupport。

 2. doStartTag(),doEndTag()

   doStartTag()方法是遇到標籤開始時會呼叫的方法,其合法的返回值是EVAL_BODY_INCLUDE與SKIP_BODY,前者表示將顯示標籤間的文字,後者表示不顯示標籤間的文字;doEndTag()方法是在遇到標籤結束時呼叫的方法,其合法的返回值是EVAL_PAGE與 SKIP_PAGE,前者表示處理完標籤後繼續執行以下的JSP網頁,後者是表示不處理接下來的JSP網頁

    doAfterBody(),這個方法是在顯示完標籤間文字之後呼叫的,其返回值有EVAL_BODY_AGAIN與SKIP_BODY,前者會再顯示一次標籤間的文字,後者則繼續執行標籤處理的下一步。

   預定的處理順序是:doStartTag()返回SKIP_BODY,doAfterBodyTag()返回SKIP_BODY,doEndTag()返回EVAL_PAGE.

  如果繼承了TagSupport之後,如果沒有改寫任何的方法,標籤處理的執行順序是:

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

  如果您改寫了doStartTag(),則必須指定返回值,如果指定了EVAL_BODY_INCLUDE,則執行順序是

   doStartTag()->顯示文字->doAfterBodyTag()->doEndTag()->執行下面的網頁

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