Jsp自訂標籤使用筆記

來源:互聯網
上載者:User
<1>實現方法的說明
    通常使用的標籤有兩種:含body部分和不含body部分
    --要實現不含body部分的標籤,必須得繼承TagSupport類,實現doStartTag()和doEndTag()方法
    --要實現自訂含body部分的標籤,必須得繼承TagSupport類或BodyTagSupport類,一般通用後者。雖然TagSupport也可以,但是BodyTagSupport繼承了TagSupport,對處理含body部分這種情況更適合。實現的方法有:doStartTag() 、setBodyContent(BodyContent bodyContent)、doInitBody()、doAfterBody()和doEndTag()
    執行過程:
       1>當容器建立一個新的標籤執行個體後,通過setPageContext來設定標籤的頁面上下文
       2>使用setParent方法設定這個標籤的上一級標籤,如果沒有上一級嵌套,設定為null
       3>設定標籤的屬性,這個屬性在標籤庫描述檔案中定義,如果沒有定義屬性,就不調用此類方法
       4>碰到指定標籤的時候,調用doStartTag()。如果返回SKIP_BODY,則不處理標籤體,直接調用doEndTag();如果返回EVAL_BODY_BUFFERED,則開始處理body
       5>調用setBodyContent()設定當前的BodyContent
       6>調用doInitBody(),如果計算BodyContent時需要進行一些初始化,就在這個方法中進行
       7>處理完body後調用doAfterBody(),如果返回EVAL_BODY_TAG,表示繼續計算一次body,知道返回SKIP_BODY才繼續往下執行
       8>調用doEndTag()方法,這個方法可以返回EVAL_PAGE或者SKIP_PAGE。當返回EVAL_PAGE時,容器將在標籤結束時繼續計算JSP頁面其他的部分;如果返回SKIP_PAGE,容器將在標籤結束時停止計算JSP頁面其他的部分
       9>調用release()方法釋放標籤程式佔用的任何資源
<2>傳回值說明
    SKIP_BODY 表示不用處理標籤體,直接調用doEndTag()方法
    SKIP_PAGE 忽略標籤後面的JSP內容
    EVAL_PAGE 處理標籤後,繼續處理JSP後面的內容
    EVAL_BODY_BUFFERED 表示需要處理標籤體
    EVAL_BODY_INCLUDE 表示需要處理標籤體,但繞過setBodyContent()和doInitBody()方法
    EVAL_BODY_AGAIN 對標籤體迴圈處理
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.