自定義標籤的實現與基礎知識
自定義標籤
1.自定義標籤怎麼實現
1)建立一個類它的介面為simpleTag
public class MyTag implements SimpleTag {
//未實現的方法
其中setJspContext(JspContext arg0)方法可以獲取包含jsp中的其他8
個隱藏物件,通過這8個物件可以在頁面中進行任何操作通過doTag()方法。且setJspContext方法比dotag方法先呼叫
public void setJspContext(JspContext arg0) {
pageContext = (PageContext)
}
2)在WEB-INF中建立一個xml格式,字尾名為tld的檔案
3)在tld設定標籤的各種引數和屬性
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<!-- 描述TLD檔案 -->
<description>Mytag 1.0 core library</description>
<display-name>Mytag core</display-name>
<tlib-version>1.1</tlib-version>
<!-- 建議在JSP頁面使用的標籤字首 -->
<short-name>c1</short-name
<!-- 作為TLD檔案的id,用來唯一標識當前的TLD檔案,多個tld檔案的URI不能重複。通過JSP頁面的taglib
標籤的URI屬性來引用 -->
<uri>http://www.tarena.com.cn/mytag1</uri>
<!-- 描述自定義的mytag標籤 -->
<tag>
<!-- 標籤的名字 -->
<name>date</name>
<!-- 標籤所在的全類名 -->
<tag-class>com.stupid.mytag.MyTag</tag-class>
<!-- 標籤額型別 -->
<body-content>empty</body-content>
</tag>
</taglib>
4)要使用標籤需要在頁面中插入包含此標籤的引用,匯入標籤庫
<!--匯入標籤庫(描述檔案) prefix為標籤的字首,uri為該TLD檔案的唯一標識-->
<%@ taglib prefix="c1" uri="http://www.tarena.com.cn/mytag1"%>
5)使用標籤:c1為字首名,date為標籤名
<c1:date/>
- 標籤的形式
- 帶屬性的自定義標籤
①現在標籤處理器類中定義setter方法,建議把所有屬性型別設定為String型別
private String name;
private String count;
public void setName(String name) {
this.name = name;
}
public void setCount(String count) {
this.count = count;
}
②在TLD描述檔案中來描述屬性
<!-- 描述當前的屬性 -->
<attribute>
<!-- 屬性名 -->
<name>name</name>
<!-- 該屬性是否必須 -->
<required>true</required>
<!-- 當前屬性是否可以接受執行時表示式的動態值 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
<!-- 描述當前的屬性 -->
<attribute>
<!-- 屬性名 ,需與標籤處理類的setter方法定義的屬性相同-->
<name>count</name>
<!-- 該屬性是否必須 -->
<required>true</required>
<!-- 當前屬性是否可以接受執行時表示式的動態值 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
③在jsp頁面使用
<c1:date name="qiujiale" count="10"/>