首先來看一下簡單標簽接口的方法以及它的生命周期
一SimpleTag接口的方法
doTag()void
getParent()JspTag
setJspBody(javaxservletjsptagextJspFragment body)void
setJspContext(javaxservletjspJspContext pc)void
setParent(javaxservletjsptagextJspTag tag)void
二SimpleTag接口的聲明周期
每次遇到Jsp標簽容器構造一個SimpleTag實例這個構造函數沒有參數
setJspContext()setParent()只有當前的標簽在另一個標簽之內時才調用setParent()方法
設置屬性調用每一個屬性的setter方法
setJspBody(javaxservletjsptagextJspFragment body)
doTag()所有標簽的邏輯迭代和Body計算都在這個方法中
return下面是對帶體標簽的介紹
三帶Body的自定以標簽
必須實現Tag接口的doStartTag()和doEndTag()方法
可以實現IterationTag接口的doAffterBody()方法
可以實現BodyTag接口的doInitBody()和setBodyContent(javaxservletjsptagextBodyContent bc)方法
doStartTag()可以返回的值ASKIP_BODY 不處理標簽體BEVAL_BODY_INCLUDE 計算的體的結果被包含在out(JspWriter)中輸出CEVAL_BODY_BUFFERED 一個BodyContent對象被創建
doEndTag()方法可以返回SKIP_PAGE或者EVAL_PAGE以確定是否繼續計算其余的頁面
doAffterBody可以返回EVAL_BODY_AGAINSKIP_BODY以確定是否再次計算標簽體
四BodyTag的處理過程
setPageContext(javaxservletjspPageContext pc)void
setParent(javaxservletjsptagextTag tag)void
doStartTag()int
setBodyContext(BodyContext bc)void
doInitBody()int
doAffterBody()int
doEndTag()int
release()void
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20747.html