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

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

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

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

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

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

靜態(tài)常量

功能描述

EVAL_BODY_INCLUDE

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

SKIP_BODY

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

EVAL_PAGE

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

SKIP_PAGE

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

表1



Tag接口的抽象方法

方法聲明

功能描述

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

表2


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

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



猜你喜歡

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

ApplicationContext接口實例

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

傳智教育Java培訓高手班課程

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