BodyTagSupport

BodyTagSupport類的方法:
編寫標籤對應的實現類時,需要重載BodyTagSupport類幾個方法:doStartTag(), setBodyContent(), doInitBody(), doAfterBody(), doEndTag();


他們執行順序如下:
doStartTag()→doInitBody()→setBodyContent()→doAfterBody()→doEndTag()


doStartTag()方法可返回EVAL_BODY_INCLUDE或SKIP_BODY,
如果返回EVAL_BODY_INCLUDE則繼續執行;
如果返回SKIP_BODY則接下來的doInitBody(),setBodyContent(), doAfterBody()三個方法不會被執行,
而直接執行doEndTag()方法。

setBodyContent()方法用於設置標籤體內容,如果在此之前要作一些初始化工作,則在doInitBody()方法中完成。
標籤體內容執行完後,會調用doAfterBody()方法,此方法可返回EVAL_BODY_TAG, SKIP_BODY,
EVAL_PAGE或SKIP_PAGE。
如果返回EVAL_BODY_TAG則會再次設置標籤體內容,直到返回SKIP_BODY;
如果返回EVAL_PAGE則標籤體執行完後會繼續執行JSP頁面中接下來的部分;
如果返回SKIP_PAGE,則JSP頁面的後續內容將不再執行。

標籤中靜態常量:

EVAL_BODY_INCLUDE:告訴服務器正文的內容,並把這些內容送入輸出流
SKIP_BODY:告訴服務器不要處理正文內容
EVAL_PAGE:讓服務器繼續執行頁面
SKIP_PAGE:讓服務器不要處理剩餘的頁面
EVAL_BODY_AGAIN:讓服務器繼續處理正文內容,只有doAfterBody方法可以返回
EVAL_BODY_BUFFERED:BodyTag接口的字段,在doStartTag()返回
EVAL_BODY_INCLUDE、SKIP_BODY一般由doStartTag()返回,而EVAL_PAPGE、SKIP_PAGE由doEndTag()返回。  

TagSupport與BodyTagSupport的區別:

1、BodyTagSupport繼承了TagSupport;

2、BodyTagSupport可讀取標籤體的內容;

3、BodyTagSupport實現嵌套標籤比TagSupport更爲簡便;

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