step1. 導包(導入要使用的標簽的jar文件)。 step2. 使用taglib指令引入要使用的標簽。 taglib指令: uri:標簽的命名空間。 prefix:命名空間的別名。 註: 命名空間:是為了區分同名的元素而添加的首碼。自定義標簽: step1. 寫一個java類,繼承SimpleT ...
step1. 導包(導入要使用的標簽的jar文件)。
step2. 使用taglib指令引入要使用的標簽。
taglib指令:
uri:標簽的命名空間。
prefix:命名空間的別名。
註:
命名空間:是為了區分同名的元素而添加的首碼。
自定義標簽:
step1. 寫一個java類,繼承SimpleTagSupport類。
step2. 在doTag方法裡面,編寫處理邏輯。
step3. 描述標簽。(.tld文件裡面)
註: <body-content>的值可以是
empty 沒有標簽體。
scriptless 可以有標簽體,但是標簽體的內容不能夠出現
java代碼。
JSP 可以有標簽體,標簽體的內容可以出現java代碼。
(只有複雜標簽技術才支持JSP這個值,簡單標簽技術只支持
empty和scriptless)。
簡單日期標簽datetag.tld例:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.1</tlib-version>
<short-name>d1</short-name>
<uri>http://aliyun.com</uri>
<tag>
<!-- name:表示自定義標簽 <c1:date名字相同 -->
<name>date</name>
<tag-class>tag.DateTag</tag-class>
<body-content>empty</body-content>
<attribute>
<!-- name:表示自定義標簽 <c1:date datetag名字相同 -->
<name>datetag</name>
<!-- true,表示可以使用el表達式來賦值 -->
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
日期java標簽類:
package tag;
/**
* 自定義日期標簽
*/
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class DateTag extends SimpleTagSupport {
private String datetag;
public String getDatetag() {
return datetag;
}
public void setDatetag(String datetag) {
this.datetag = datetag;
}
@Override
public void doTag() throws JspException, IOException {
PageContext pc = (PageContext) getJspContext();
SimpleDateFormat sdf = new SimpleDateFormat(datetag);
String date = sdf.format(new Date());
JspWriter out = pc.getOut();
out.println(date);
}
}