程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 自定義標簽入門

自定義標簽入門

編輯:關於JSP

 

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()返回


摘自 耗子的程序員之路

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved