更新時(shí)間:2023-02-03 來(lái)源:黑馬程序員 瀏覽量:
在JSP開(kāi)發(fā)中,為了處理某些邏輯功能,難免會(huì)在JSP頁(yè)面書(shū)寫(xiě)大量的Java代碼,從而導(dǎo)致JSP頁(yè)面難以維護(hù),可重用性較低。為此,JSP從版本1.1開(kāi)始,支持用戶(hù)開(kāi)發(fā)自己的標(biāo)簽,即自定義標(biāo)簽。
自定義標(biāo)簽可以有效地將HTML代碼與Java代碼分離,從而使不懂Java編程的HTML設(shè)計(jì)人員也可以編寫(xiě)出功能強(qiáng)大的JSP頁(yè)面。JSP規(guī)范中定義了多個(gè)用于開(kāi)發(fā)自定義標(biāo)簽的接口和類(lèi),它們都位于javax.servlet.jsp.tagext中,這些接口和類(lèi)的繼承關(guān)系如圖9-1所示。
圖9-1 自定義標(biāo)簽接口和類(lèi)的繼承關(guān)系
從圖9-1中可以看出,所有的標(biāo)簽處理器類(lèi)都需要實(shí)現(xiàn)javax.servlet.jsp.tagext.JspTag接口,這個(gè)接口是在JSP2.0中新增的一個(gè)標(biāo)識(shí)接口,它沒(méi)有任何方法,主要是作為javax.servlet.jsp.tagext.Tag和javax.servlet.jsp.tagext.SimpleTag的共同基類(lèi)。在JSP2.0之前,所有的標(biāo)簽類(lèi)都需要實(shí)現(xiàn)Tag接口,這樣的標(biāo)簽稱(chēng)為傳統(tǒng)標(biāo)簽。后來(lái)為了簡(jiǎn)化標(biāo)簽的開(kāi)發(fā),JSP2.0規(guī)范又定義了一種新類(lèi)型的標(biāo)簽,稱(chēng)為簡(jiǎn)單標(biāo)簽,簡(jiǎn)單標(biāo)簽的處理器類(lèi)需要實(shí)現(xiàn)SimpleTag接口。關(guān)于傳統(tǒng)標(biāo)簽和簡(jiǎn)單標(biāo)簽的相關(guān)知識(shí),將在后面繼續(xù)進(jìn)行講解。