JAVA資格認(rèn)證:JSP自定義標(biāo)簽執(zhí)行順序

字號(hào):

首先來(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