JSP中的TagLib應(yīng)用(3)
自定義tag位置
WEB-INF/tlds/xxxx.tld
注意:需要在tld文件里定義:
tlibversion--------Tag library的版本
jspversion--------這個(gè)Tag library要求的JSP版本。
shortname-------缺省的名字。(這個(gè)例子里沒(méi)有定義)
uri-------------------這個(gè)Tag library的URL
info-----------------Tag library的使用信息
tag-----------------自定義的tag
name--------------- 自定義的tag的名字
tagclass----------- 處理這個(gè)tag的java類(lèi)的名字.不同的tag可能對(duì)應(yīng)不同的java類(lèi)來(lái)處理。
Teiclass----------
bodycontent----- 標(biāo)出屬性值的類(lèi)型,如果沒(méi)有標(biāo)識(shí),隱含為JSP
JSP -------------------interpreted by page
EMPTY ------ -----------no body allowed
TAGDEPENDENT-----interpreted by tag
需要BodyTag
BodyTag can post-process JSP
info------------------ 這個(gè)tag的使用信息
attribute----------- 屬性。 每個(gè)tag可以有n個(gè)屬性
在這個(gè)例子里,定義了四個(gè)tag。
自定義tag位置
詳細(xì)說(shuō)明一下attribute.
指出了tag所包含的屬性名字
true 表示這個(gè)屬性是必須的
或
false 表示這個(gè)屬性不是必須的
隱含為false
true表示這個(gè)屬性的值可以用jsp程序段的結(jié)果輸出。
或
false表示這個(gè)屬性的值不可以用jsp程序段的結(jié)果輸出。
隱含為false
-----------------------------------------------------------------------------------
以insert tag為例, 定義了一個(gè)名字叫insert的tag, 他的處理文件是com.sun.estore.taglib.InsertTag
屬性值的類(lèi)型是JSP, 接下來(lái)是定義了三個(gè)屬性.在jsp頁(yè)面里引用。
現(xiàn)在你應(yīng)該能明白這個(gè)tld文件所表示的大概含義. 我們按照這種格式來(lái)寫(xiě)自己的tld文件.
應(yīng)該沒(méi)有什么問(wèn)題了. 如果還是不懂的話(huà), 看看關(guān)于XML方面的書(shū)籍會(huì)有好處.
在jsp文件里使用tld文件,是使用指令
借用飛刀同志在jsp語(yǔ)法里面的講解。
自定義tag位置
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Taglib 指令
定義一個(gè)標(biāo)簽庫(kù)以及其自定義標(biāo)簽的前綴.
JSP 語(yǔ)法
例子
.
.
描述
指令聲明此JSP文件使用了自定義的標(biāo)簽,同時(shí)引用標(biāo)簽庫(kù),
也指定了他們的標(biāo)簽的前綴。
這里自定義的標(biāo)簽含有標(biāo)簽和元素之分。因?yàn)镴SP文件能夠轉(zhuǎn)化為XML,
所以了解標(biāo)簽和元素之間的聯(lián)系很重要。標(biāo)簽只不過(guò)是一個(gè)在意義上被抬
高了點(diǎn)的標(biāo)記,是JSP元素的一部分。JSP元素是JSP語(yǔ)法的一部分,和XML
一樣有開(kāi)始標(biāo)記和結(jié)束標(biāo)記。元素也可以包含其它的文本,標(biāo)記,元素。
比如,一個(gè)jsp:plugin元素有開(kāi)始標(biāo)記和結(jié)束標(biāo)記,同樣
也可以有和元素.
你必須在使用自定義標(biāo)簽之前使用指令,而且你可以在一個(gè)頁(yè)面中多次使用,但是前綴只能使用一次屬性
自定義tag位置
uri="URIToTagLibrary"
Uniform Resource Identifier (URI)根據(jù)標(biāo)簽的前綴對(duì)自定義的標(biāo)簽進(jìn)行唯一的命名,URI可以是以下的內(nèi)容:
? Uniform Resource Locator (URL), 由 RFC 2396 定義,
查看 http://www.hut.fi/u/jkorpela/rfc/2396/full.html
Uniform Resource Name (URN), 由 RFC 2396定義
? 一個(gè)相對(duì)或絕對(duì)的路徑
prefix="tagPrefix"
在自定義標(biāo)簽之前的前綴,比如,在中的public,如果這里不寫(xiě)public,
那么這就是不合法的。請(qǐng)不要用jsp, jspx, java, javax, servlet, sun, 和sunw做為你的前綴
=======================template.jsp====================
要使用此例子,請(qǐng)到aspcn.com
===============================================
這里定義了一個(gè)jsp文件。 這個(gè)文件是由前面例子定義的tag組成的.
jsp引擎通過(guò)對(duì)tag的處理,jsp程序段的運(yùn)行結(jié)果和一些html標(biāo)簽組合,
將一個(gè)完整的html結(jié)果 返回到browser端.
這里有意思的是根據(jù)參數(shù)的不同,這個(gè)文件可以返回不同的內(nèi)容。這就是通常所說(shuō)的模板文件.
可惜本文不談這些,只是介紹 在jsp文件中使用tag. 有興趣的可以自己研究
|