本篇文章介紹自定義標(biāo)簽,可能在工作中很少涉及到自己來(lái)定義一個(gè)標(biāo)簽庫(kù),因?yàn)槲覀兓旧隙际鞘褂玫拇笊駥?xiě)的標(biāo)簽庫(kù),基本上直接使用即可,但是從自身的發(fā)展來(lái)看,通往高級(jí)程序員的道路上,開(kāi)發(fā)框架就需要大量的使用到標(biāo)簽庫(kù)技術(shù)。本文將從以下幾個(gè)方面介紹自定義標(biāo)簽庫(kù)的基本知識(shí)點(diǎn):
背景以及作用
開(kāi)發(fā)簡(jiǎn)單的標(biāo)簽
開(kāi)發(fā)帶屬性的標(biāo)簽
開(kāi)發(fā)帶標(biāo)簽體的標(biāo)簽
以頁(yè)面片段為屬性的標(biāo)簽
具有動(dòng)態(tài)屬性的標(biāo)簽
一、標(biāo)簽庫(kù)有什么作用
自定義標(biāo)簽庫(kù)是一種優(yōu)秀的表現(xiàn)層技術(shù),之前介紹的MVC模式,我們使用jsp作為表現(xiàn)層,但是jsp語(yǔ)法嵌套在html頁(yè)面,美工還是很難直接參與開(kāi)發(fā),并且jsp腳本和html代碼耦合在一起,維護(hù)成本較高。我們能不能開(kāi)發(fā)一套和html風(fēng)格類(lèi)似并且能完成jsp腳本功能的標(biāo)簽來(lái)解決這種低效的協(xié)作方式呢?于是標(biāo)簽庫(kù)就誕生了。
這是Java中標(biāo)簽規(guī)范的繼承體系,實(shí)現(xiàn)Tag接口的我們叫做傳統(tǒng)式標(biāo)簽庫(kù)開(kāi)發(fā),這種開(kāi)發(fā)模式略顯發(fā)復(fù)雜,基本已經(jīng)被SimpleTag式的簡(jiǎn)單式開(kāi)發(fā)標(biāo)簽庫(kù)給取代了。Java中提供了一個(gè)默認(rèn)的實(shí)現(xiàn)類(lèi)SimpleTagSupport來(lái)實(shí)現(xiàn)自定義標(biāo)簽,我們只要繼承此類(lèi)即可。
二、開(kāi)發(fā)一個(gè)最簡(jiǎn)單的標(biāo)簽庫(kù)
開(kāi)發(fā)一個(gè)自定義標(biāo)簽庫(kù)的過(guò)程如下:
開(kāi)發(fā)自定義標(biāo)簽處理類(lèi)
創(chuàng)建*.tld文件,每個(gè)此文件對(duì)應(yīng)一個(gè)標(biāo)簽庫(kù),標(biāo)簽庫(kù)中可以由多個(gè)標(biāo)簽
在jsp頁(yè)面使用標(biāo)簽
首先我們先從自定義標(biāo)簽處理類(lèi)開(kāi)始,正如上文所說(shuō),這個(gè)類(lèi)只有繼承了SimpleTagSupport這個(gè)類(lèi)可以省去省去重寫(xiě)SimpleTag接口中的一些方法。我們說(shuō)個(gè)doTag()這個(gè)方法很重要,這個(gè)方法類(lèi)似于我么main方法一樣,當(dāng)jsp頁(yè)面加載到我們定義的標(biāo)簽的時(shí)候就會(huì)過(guò)來(lái)調(diào)用這個(gè)方法。
網(wǎng)友評(píng)論