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