對於自定義標籤而言,若是咱們要想使用咱們本身定義的簡單標籤咱們必須瞭解下面的相關類及接口的關係!這樣咱們就能夠開發咱們本身的標籤庫了!下面咱們來看一下吧!java
咱們只要實現SimpleTag接口的實現類SimpleTagSupport抽象類就能夠了!在此咱們先來了解一下 SimpleTag 接口中定義的方法:web
1 public interface SimpleTag extends JspTag { 2 3 public void doTag() 4 throws javax.servlet.jsp.JspException, java.io.IOException; 5 6 public void setParent( JspTag parent ); 7 8 public JspTag getParent(); 9 10 public void setJspContext( JspContext pc ); 11 12 public void setJspBody( JspFragment jspBody ); 13 14 15 }
如下是該接口中方法的做用:express
開發自定義標籤,其核心就是要編寫處理器類,在咱們瞭解過SimpleTag 接口中的方法後咱們來了解一下當咱們編寫實現SimpleTag接口的標籤處理器類後,其生命週期是是怎樣的(即:方法的執行順序)?apache
咱們瞭解了標籤處理器類後,咱們下面來了解一下標籤庫描述文件less
下面就是tld文件的部份內容:jsp
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!-- DTD約束引用--> 3 <taglib xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 6 version="2.1"> 7 <!-- tld 文件的描述信息--> 8 <description>JSTL 1.2 core library</description> 9 <display-name>JSTL core</display-name> 10 <tlib-version>1.2</tlib-version> 11 <short-name>c</short-name> 12 <uri>http://java.sun.com/jsp/jstl/core</uri> 13 <validator> 14 <description> 15 Provides core validation features for JSTL tags. 16 </description> 17 <validator-class> 18 org.apache.taglibs.standard.tlv.JstlCoreTLV 19 </validator-class> 20 </validator> 21 <!-- 在 tag 標籤中定義的咱們的自定義標籤--> 22 <tag> 23 <description> 24 Catches any Throwable that occurs in its body and optionally 25 exposes it. 26 </description> 27 <!-- 自定義標籤的名字--> 28 <name>catch</name> 29 <!-- 自定義標籤的處理器類全類名--> 30 <tag-class> 31 org.apache.taglibs.standard.tag.common.core.CatchTag 32 </tag-class> 33 <!-- 自定義標籤的標籤體的內容類型:在2.0版本中只有empty、scriptless、tagdependent 三種類型,但到了2.1版本後加了 JSP 類型,更加豐富了標籤體的靈活性。 34 – empty:沒有標籤體 35 – scriptless:標籤體能夠包含 el 表達式和 JSP 動做元素,但不能包含 JSP 的腳本元素 36 – tagdependent:表示標籤體交由標籤自己去解析處理。若指定 tagdependent,在標籤體中的全部代碼都會原封不動的交給標籤處理器,而不是將執行結果傳遞給標籤處理器 37 – JSP:接受全部JSP語法,如定製的或內部的tag、scripts、靜態HTML、腳本元素、JSP指令和動做。 38 --> 39 <body-content>JSP</body-content> 40 <!-- 在attribute標籤中定義自定義標籤的屬性--> 41 <attribute> 42 <description> 43 Name of the exported scoped variable for the 44 exception thrown from a nested action. The type of the 45 scoped variable is the type of the exception thrown. 46 </description> 47 <!-- 自定義標籤屬性的名字--> 48 <name>var</name> 49 <!-- 自定義標籤屬性是否是必須的,取值能夠有true|false|yes|no--> 50 <required>false</required> 51 <!--該屬性 rtexprvalue 的全拼是 runtime expression value 運行時表達式值!該屬性表示是否能夠接受運行時表達式的值。 能夠填的值 yes|false|true|no --> <rtexprvalue>false</rtexprvalue> 52 </attribute> 53 </tag> 54 </taglib>
這樣咱們就能夠在咱們的JSP頁面中引用咱們本身定義的標籤了!ide
<%@ taglib prefix=「」 uri=「」 %>ui