首先來(lái)看一下簡(jiǎn)單標(biāo)簽接口的方法以及它的生命周期
一、SimpleTag接口的方法
1、doTag():void
2、getParent():JspTag
3、setJspBody(javax.servlet.jsp.tagext.JspFragment body):void
4、setJspContext(javax.servlet.jsp.JspContext pc):void
5、setParent(javax,servlet.jsp.tagext.JspTag tag):void
二、SimpleTag接口的聲明周期
1、每次遇到Jsp標(biāo)簽容器構(gòu)造一個(gè)SimpleTag實(shí)例,這個(gè)構(gòu)造函數(shù)沒(méi)有參數(shù)。
2、setJspContext()、setParent()只有當(dāng)前的標(biāo)簽在另一個(gè)標(biāo)簽之內(nèi)時(shí)才調(diào)用setParent()方法
3、設(shè)置屬性,調(diào)用每一個(gè)屬性的setter方法
4、setJspBody(javax.servlet.jsp.tagext.JspFragment body)
5、doTag()所有標(biāo)簽的邏輯迭代和Body計(jì)算都在這個(gè)方法中
6、return下面是對(duì)帶體標(biāo)簽的介紹
三、帶Body的自定以標(biāo)簽
1、必須實(shí)現(xiàn)Tag接口的doStartTag()和doEndTag()方法
2、可以實(shí)現(xiàn)IterationTag接口的doAffterBody()方法
3、可以實(shí)現(xiàn)BodyTag接口的doInitBody()和setBodyContent(javax.servlet.jsp.tagext.BodyContent bc)方法
4、doStartTag()可以返回的值:A、SKIP_BODY 不處理標(biāo)簽體B、EVAL_BODY_INCLUDE 計(jì)算的體的結(jié)果被包含在out(JspWriter)中輸出C、EVAL_BODY_BUFFERED 一個(gè)BodyContent對(duì)象被創(chuàng)建
5、doEndTag()方法可以返回SKIP_PAGE或者EVAL_PAGE以確定是否繼續(xù)計(jì)算其余的頁(yè)面
6、doAffterBody可以返回EVAL_BODY_AGAIN、SKIP_BODY以確定是否再次計(jì)算標(biāo)簽體
四、BodyTag的處理過(guò)程
1、setPageContext(javax.servlet.jsp.PageContext pc):void
2、setParent(javax.servlet.jsp.tagext.Tag tag):void
3、doStartTag():int
4、setBodyContext(BodyContext bc):void
5、doInitBody():int
6、doAffterBody():int
7、doEndTag():int
8、release():void
一、SimpleTag接口的方法
1、doTag():void
2、getParent():JspTag
3、setJspBody(javax.servlet.jsp.tagext.JspFragment body):void
4、setJspContext(javax.servlet.jsp.JspContext pc):void
5、setParent(javax,servlet.jsp.tagext.JspTag tag):void
二、SimpleTag接口的聲明周期
1、每次遇到Jsp標(biāo)簽容器構(gòu)造一個(gè)SimpleTag實(shí)例,這個(gè)構(gòu)造函數(shù)沒(méi)有參數(shù)。
2、setJspContext()、setParent()只有當(dāng)前的標(biāo)簽在另一個(gè)標(biāo)簽之內(nèi)時(shí)才調(diào)用setParent()方法
3、設(shè)置屬性,調(diào)用每一個(gè)屬性的setter方法
4、setJspBody(javax.servlet.jsp.tagext.JspFragment body)
5、doTag()所有標(biāo)簽的邏輯迭代和Body計(jì)算都在這個(gè)方法中
6、return下面是對(duì)帶體標(biāo)簽的介紹
三、帶Body的自定以標(biāo)簽
1、必須實(shí)現(xiàn)Tag接口的doStartTag()和doEndTag()方法
2、可以實(shí)現(xiàn)IterationTag接口的doAffterBody()方法
3、可以實(shí)現(xiàn)BodyTag接口的doInitBody()和setBodyContent(javax.servlet.jsp.tagext.BodyContent bc)方法
4、doStartTag()可以返回的值:A、SKIP_BODY 不處理標(biāo)簽體B、EVAL_BODY_INCLUDE 計(jì)算的體的結(jié)果被包含在out(JspWriter)中輸出C、EVAL_BODY_BUFFERED 一個(gè)BodyContent對(duì)象被創(chuàng)建
5、doEndTag()方法可以返回SKIP_PAGE或者EVAL_PAGE以確定是否繼續(xù)計(jì)算其余的頁(yè)面
6、doAffterBody可以返回EVAL_BODY_AGAIN、SKIP_BODY以確定是否再次計(jì)算標(biāo)簽體
四、BodyTag的處理過(guò)程
1、setPageContext(javax.servlet.jsp.PageContext pc):void
2、setParent(javax.servlet.jsp.tagext.Tag tag):void
3、doStartTag():int
4、setBodyContext(BodyContext bc):void
5、doInitBody():int
6、doAffterBody():int
7、doEndTag():int
8、release():void

