JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用


1、標簽
類似於html標簽的方式實現的java代碼的封裝
第一:形成了開發標簽的技術標准---自定義標簽的技術標准
第二:java標准標簽庫(sun之前自己開發的一系列的標簽的集合)jstl,以及表達式語言EL。
 
2、自定義標簽
(1)理解:
可以允許用戶自己根據自己的需要,去開發自己的標簽的技術規范。
通俗:在Jsp頁面上,以簡單的標簽封裝java代碼的操作
//在自定義標簽類中,先調用setPageContext()實例化內置對象:
JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用
//然后是doStartTag()方法,核心代碼放在這個方法里面
JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用
 //定義變量,變量的Get、Set方法:
 private String UserName = "";
JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用
//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 是否程序運行時候為屬性賦值。
JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用
//如果在tld文件中不設置uri,則在web-xml中必須對talib-uri進行設置。
JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用
//在JSP頁面中,用taglib指令導入自定義標簽。
JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用
//JSP頁面上的使用,前面my為tld文件中為標簽類定義的命名空間、hello為tld文件中指定標簽類的別名:
JavaEE自定義標簽:標簽類的創建、tld配置文件的創建(位置、如何創建)、Web-XML配置、JSP應用

(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.xml
E: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:根元素:taglib
B: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的配置,可以直接在j sp上調用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頁面上的標簽中,使用屬性
注意:屬性名必須與類中的變量同名。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM