標(biāo)簽被定義和分布在一個(gè)稱為標(biāo)簽庫的結(jié)構(gòu)中,一個(gè)標(biāo)簽庫是由元信息和類組成的集合:
1.標(biāo)簽處理器:實(shí)現(xiàn)定制標(biāo)簽功能的Java類。
2.標(biāo)簽附加信息(TEI):向JSP容器提供邊輯以確認(rèn)標(biāo)簽屬性和創(chuàng)建變量的類。
3.標(biāo)簽庫描述器(TLD):描述單個(gè)標(biāo)簽和整個(gè)標(biāo)簽庫屬性的XML文檔。
標(biāo)簽處理器和標(biāo)簽附加信息需要定位在JSP容器類載入器可以找到的地方。標(biāo)簽庫描述器可在URL指定的符意位置。JSP1.1規(guī)范要求JSP容器接受一個(gè)打包成因定結(jié)構(gòu)的JAR文件的標(biāo)簽庫。TLD必須是/META-INF目錄中名為taglib.tld的文件,JAR文件則復(fù)制到/WEB-INF /lib目錄下。
一、標(biāo)簽實(shí)現(xiàn)
1.開發(fā)步驟
a.定義標(biāo)簽的名字、屬性、聲明的變量和標(biāo)簽體的內(nèi)容。
b.編寫標(biāo)簽庫描述器TLD。
c.編寫標(biāo)簽處理器。
d.在JSP頁面中使用標(biāo)簽。
2.JSP頁面在JSP容器中的轉(zhuǎn)換步驟:
JSP頁面存在三種形式:jsp文件、java文件和class文件。
a.指令元素、和向JSP容器提供轉(zhuǎn)換時(shí)信息。
b.HTML行在_jspService()方法中依順序轉(zhuǎn)換到out.print()語名中。
c.腳本元素的聲明被原封不動地復(fù)制到_jspService()方法外的源碼中。
d.腳本元素的表達(dá)式在_jspService()方法中依順序轉(zhuǎn)換到out.print()語名中。
e.腳本元素的Scriptlet被原封不動地復(fù)制到_jspService()方法中。
f.行為元素被轉(zhuǎn)換為執(zhí)行其功能的運(yùn)行時(shí)邏輯代碼。
g.定制標(biāo)簽被擴(kuò)展到調(diào)用其相應(yīng)標(biāo)簽處理器中方法的Java語句中。
3.標(biāo)簽在JSP容器中的轉(zhuǎn)換步驟:
a.JSP容器使用taglib指令元素定位標(biāo)簽庫描述器,將頁面中用到的定制標(biāo)簽和TLD相匹配。
b.讀取標(biāo)簽庫描述器的標(biāo)簽列表和每一標(biāo)簽相關(guān)的類名字。
c.在頁面中遇到一個(gè)標(biāo)簽時(shí),查找與具有指定名字的標(biāo)簽前綴相關(guān)的一個(gè)標(biāo)簽庫。
d.容器使用在TLD中找到的標(biāo)簽結(jié)構(gòu)信息生成一系列完成標(biāo)簽功能的Java語句。
二、標(biāo)簽庫描述器(TLD)
標(biāo)簽庫描述器是一個(gè)描述整個(gè)標(biāo)簽庫標(biāo)記信息和庫中每個(gè)標(biāo)簽處理器及其屬性的XML文檔。
標(biāo)簽庫描述器的DTD由一個(gè)簡單的元素組成,此元素包含下列一些子元素。
整個(gè)標(biāo)簽庫標(biāo)記信息
tlibversion 標(biāo)簽庫版本號。是一個(gè)點(diǎn)式十進(jìn)制數(shù),最多為4組小數(shù)點(diǎn)分隔的數(shù)字組成。
jspversion 標(biāo)簽庫所需的JSP規(guī)范最低版本。例如JSP1.1
shortname 標(biāo)簽庫的縮寫名。JSP可以使用該名字作為庫中標(biāo)簽的缺省前綴。
uri 標(biāo)簽庫唯一URI的元素。典型URL位置來自可下載taglib的位置。
info 標(biāo)簽庫描述信息。
每個(gè)標(biāo)簽處理器及其屬性
tag 在TLD中加入標(biāo)簽,描述組成庫的每個(gè)標(biāo)簽。
name 與標(biāo)簽庫的名字前綴一起使用的標(biāo)簽的名字, 是JSP容器唯一的標(biāo)簽標(biāo)識。
tagclass 實(shí)現(xiàn)標(biāo)簽的標(biāo)簽處理器類的全名。
teiclass 標(biāo)簽附加信息(TEI)類的全名。TEI類給出關(guān)于標(biāo)簽處理器創(chuàng)建變量及對標(biāo)簽司性執(zhí)行的任意有效性驗(yàn)證的信息。
bodycontent 描述標(biāo)簽處理器如何使用標(biāo)簽體的內(nèi)容。有三種取值:
empty:表示標(biāo)簽體必須為空;
JSP:表示腳本元素和模板及其它標(biāo)簽一樣被評估。
tagdependent:體內(nèi)容被原封不動寫入BodyContent,其它腳本元素以源碼形式出現(xiàn),而不被JSP容器解釋。
info 標(biāo)簽的人工可讀描述性信息。
attribute 使用標(biāo)簽時(shí)被編碼的屬性信息。用于定義標(biāo)簽的屬性。
屬性名:屬性的名字。
true|false:屬性在標(biāo)簽用到的位置是否要被編碼。
true|false:屬性值能否用表達(dá)式指定。
新聞熱點(diǎn)
疑難解答
圖片精選