教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Tag接口的靜態(tài)常量和抽象方法

更新時間:2021年11月16日11時16分 來源:傳智教育 瀏覽次數(shù):

Tag接口是所有傳統(tǒng)標(biāo)簽的父接口,它定義了4個int類型的靜態(tài)常量和6個抽象方法,具體如表1和表2所示。

Tag接口的靜態(tài)常量

靜態(tài)常量

功能描述

EVAL_BODY_INCLUDE

doStartTag()方法的返回值,表示標(biāo)簽體會被執(zhí)行

SKIP_BODY

doStartTag()方法的返回值,表示標(biāo)簽體不被執(zhí)行

EVAL_PAGE

doEndTag()方法的返回值,表示標(biāo)簽后面余下的JSP頁面繼續(xù)執(zhí)行

SKIP_PAGE

doEndTag()方法的返回值,表示標(biāo)簽后面余下的JSP頁面不被執(zhí)行

表1



Tag接口的抽象方法

方法聲明

功能描述

void setPageContext(PageContext pc) JSP容器實例化標(biāo)簽處理器后,調(diào)用setPageContextO)方法將JSP頁面的內(nèi)置對象pageContext對象傳遞給標(biāo)簽處理器,標(biāo)簽處理器可以通過pageContext對象與JSP頁面進(jìn)行通信
void setParent(Tag t) 調(diào)用setPageContext()方法后,JSP容器會調(diào)用setParent()方法將當(dāng)前標(biāo)簽的父標(biāo)簽處理器對象傳遞給當(dāng)前標(biāo)簽處理器,如果當(dāng)前標(biāo)簽沒有父標(biāo)簽,則傳遞給setParent()方法的參數(shù)為null。
Tag getParent() 返回當(dāng)前標(biāo)簽的父標(biāo)簽處理器對象,如果當(dāng)前標(biāo)簽沒有父標(biāo)簽則返回null
int doStartTag() 當(dāng)JSP容器解析到自定義標(biāo)簽的開始標(biāo)簽時,會調(diào)用doStartTag()方法,該方法可以返回VAL_BODY_INCLUDE和SKIP_BODY兩個常量,如果使用Tag的子接口odyTag,還可以使用BodyTag.EVAL_BODY_BUFFERED常量
int doEndTag() 當(dāng)JSP容器解析到自定義標(biāo)簽的結(jié)束標(biāo)簽時,會調(diào)用doEndTag()方法,該方法可以返回EVAL_PAGE和SKIP_PAGE兩個常量
void release() JSP容器在標(biāo)簽處理器對象被作為垃圾回收之前調(diào)用release()方法,以便釋放標(biāo)簽處理器所占用的資源

表2


表1中的常量都是標(biāo)簽處理器方法的返回值,服務(wù)器根據(jù)方法的返回值來決定標(biāo)簽體和JSP頁面是否執(zhí)行。接下來,針對Tag接口中定義的方法進(jìn)行講解,如表2所示。

Tag接口定義了JSP頁面與標(biāo)簽處理器之間的通信規(guī)則,當(dāng)JSP容器將JSP頁面翻譯成Servlet源文件時,如果遇到JSP標(biāo)簽,會創(chuàng)建標(biāo)簽處理器類的實例對象,然后依次調(diào)用標(biāo)簽處理器的setPageContext()方法、setParent()方法、doStartTag()方法、doEndTag()方法和release()方法,因此,在實現(xiàn)Tag接口時,需要對這些抽象方法進(jìn)行實現(xiàn)。



猜你喜歡

接口和抽象類有什么區(qū)別?

ApplicationContext接口實例

Java中怎樣定義和聲明接口?

傳智教育Java培訓(xùn)高手班課程

0 分享到:
和我們在線交談!