標籤:
1、標籤以
類似於html標籤的方式
實現的java代碼的封裝。第一:形成了開發標籤的技術標準---
自訂標籤的技術標準。第二:java標準標籤庫(sun之前自己開發的一系列的標籤的集合)
jstl,以及運算式語言
EL。 2、
自訂標籤(1)理解:可以允許使用者自己根據自己的需要,去
開發自己的標籤的技術規範。通俗:在
Jsp頁面上,以簡單的標籤封裝java代碼的操作。//在自訂標籤類中,先調用
setPageContext()執行個體化內建對象:
//然後是
doStartTag()方法,核心代碼放在這個方法裡面:
//定義變數,變數的Get、Set方法:
private String UserName = "";
//tld設定檔放置在WEB-INF目錄下,主要的標記如下,主要的配置如下://前面tlib-version版本號碼、Jsp-version JSP的版本號碼、
short-name 命名空間、是必須有的
//uri,注意是uri而不是url,url是訪問的路徑。
//而uri為訪問時候的別名,寫在JSP頁面上的標籤的別名。//name為此標籤類的別名,tag-class 為標籤類的存放的實體路徑 //body-content 為是否有標籤體,如果是/子關閉標籤設定為EMPTY//如果涉及到標籤屬性,可以設定attribute,其中name為屬性的名稱,而不是別名,required 屬性是否必須設定,
rtexprvalue 是否程式運行時候為屬性賦值。
//如果在tld檔案中不設定uri,則在web-xml中必須對talib-uri進行設定。
//在JSP頁面中,用taglib指令匯入自訂標籤。
//JSP頁面上的使用,前面my為tld檔案中為標籤類定義的命名空間、hello為tld檔案中指定標籤類的別名:
(2)技術組成A:
標籤處理類:實現所有資訊顯示功能的
Java類B:
標籤設定檔(標籤描述檔案、庫檔案):是一個
遵守xml規範的tld檔案(副檔名為TLD)C:
配置web.xml:告訴web應用,需要引用其他的標籤資訊D:
jsp頁面上,調用標籤 3、標籤的特點(1)分類A:
成對出現的標籤B:
自關閉的標籤(2)特點A:標籤必須正確的關閉B:標籤不能出現重名C:標籤可以有
標籤體也可以沒有D:標籤可以有
屬性,但是一個標籤不能出現同名屬性 最簡單的標籤:
沒有標籤體也沒有屬性的標籤 4、自訂標籤的開發流程(
上面的插圖)A:
明確要實現的功能:要在頁面顯示具體什麼內容B:
開發標籤處理類C:
建立以及配置標籤描述檔案:TLD檔案D:配置
web.xmlE:jsp頁面調用標籤 5、開發標籤處理類(1)父類
一個介面兩個類介面:
Tag介面
javax.servlet.jsp.tagext.Tag類:
自關閉:TagSupport
成對出現:BodyTagSupport(2)開發標籤類
整合自指定的類,重寫
setPageContext(),doStartTag(),doEndTag()。重點:標籤開始操作doStartTag()方法★ 6、建立標籤設定檔(TLD檔案)(1)作用是用來統一
管理多個標籤處理類的xml檔案。(2)建立具有自己的格式和規範的(和XML檔案一樣)推薦
在
WEN-INF目錄下,建立自己的tld檔案。(3)
檔案格式A:
根項目:taglibB:taglib的四個起始子項目
<tlib-version>標籤庫的技術標準的版本1.0</tlib-version>
<jsp-version>支援的
jsp的技術標準版本1.2
</jsp-version>
<short-name>標籤庫檔案的
命名空間:縮寫
</short-name>
<uri>當前標籤庫檔案的唯一標記的符號(別名)</uri>
命名空間:
用來區分當前標籤是屬於哪個標籤庫的名稱簡寫。<jsp:useBean> 說明:uri子項目是可有可無的,但是會對後期的調用產生影響。 C:tag子項目每個標籤處理類都必須在tld檔案中進行配置。每個標籤類都對應一個tag元素,描述自己的配置資訊。
<tag>
<name>標籤處理類的
別名
</name>
<tag-class>標籤類的
物理地址</tag-class>
<body-content>是否有標籤體
</body-content>
</tag>
body-content:值預設的是jsp。如果是自關閉標籤,需要制定成empty。
如果標籤有屬性,還有attribute子項目。 7、配置
web.xml(1)作用在web.xml中進列標籤設定檔的設定,告訴web應用程式,需要調用的
自訂標籤在哪裡。(2)前提在標籤設定檔中,如果沒有進行<uri>的配置,則
必須進行web.xml的配置。如果已經配置了uri元素的值,就
不需要進行web.xml的配置,可以直接在jsp上調用。
uri表現在JSP頁面引入標籤時候,需為taglib指令指定uri,注意和TLD檔案中的標籤類的別名name區分,那個是在JSP頁面中調用標籤時候命名空間後面寫入。(3)配置(如在WEB.XML中的配置)所有的標籤設定檔的配置,都必須在
<jsp-config>元素中。每個設定檔有自己
<taglib>元素。
<taglib>
<taglib-location>標籤設定檔的
物理地址</taglib-location>
<taglib-uri>標籤設定檔的調用
別名
</taglib-uri>
</taglib> 8、
jsp調用標籤(1)引入標籤庫利用
taglib指令實現引入
<%@ taglib uri="標籤庫的別名" prefix="標籤庫的首碼(命名空間)"%>uri:
如果tld檔案中已經配置了uri,
必須與tld的uri一致
。如果tld中沒有配置,必須與web.xml中的taglib-uri一致。
prefix:首碼,如果在tld檔案中設定了
short-name,則必須與short-name保持一致。 (2)調用標籤
<首碼:標籤類的別名> (3)標籤處理類的
生命週期
A:載入根據標籤類的別名,
定位標籤處理類,載入到容器上
B:執行個體化根據預設
無參建構函式,進行執行個體化
C:設定上下文設定頁面上下文,
獲得內建對象
D:設定父標籤
E:執列標籤開始的操作
F:執列標籤結束的操作
G:資源釋放 9、jsp和標籤處理類的資訊互動方式兩種:
A:藉助session屬性,由jsp向標籤處理類傳遞值B:藉助於
標籤的屬性,實現傳值。 10、屬性(1)理解
用來附加說明標籤基本資料的名稱與值的集合。(2)分類必須有的屬性可有可無的屬性(3)特點A:是名稱與值的集合B:如果有屬性,屬性必有值C:
屬性的值必須用引括起來D:一個標籤不允許有同名屬性(4)設定A:在標籤處理類中,建立代表屬性的變數以及對應的set/get方法(見)。在標籤處理類中,屬性是以變數的方式存在的。B:在標籤開始動作中,直接使用變數C:在標籤設定檔上,在相應的
tag中,添加屬性配置。每個屬性都有自己的<attribute>標籤
<attribute>
<name>屬性的名稱(與類中變數同名)</name>
<required>屬性是否是必須的(true/false)</required>
<rtexprvalue>屬性的值是否通過運行時加以賦值(程式動態賦值)</rtexprvalue>
</attribute>D:jsp頁面上的標籤中,使用屬性注意:
屬性名稱必須與類中的變數同名。
練習demo:http://download.csdn.net/detail/a757956132/8923365
JavaEE自訂標籤:標籤類的建立、tld設定檔的建立(位置、如何建立)、Web-XML配置、JSP應用