Java自定義標籤

標籤能幹什麼?

1.循環
2.修改(可以用於格式化時間)
3.判斷(相當於if else)

jsp標籤規範分爲

1. 1.0時代(繼承TagSupport(傳統,複雜))
2. 2.0時代(繼承SimpleTagSupport(新生代,簡單))  

步驟

1.創建標籤庫類
2.創建標籤庫文件
3.頁面引入

下面就拿2.0規範,格式化時間功能實例舉個栗子: 1.創建標籤庫類 (繼承SimpleTagSupport,實現doTag()即可)

public class DateTag extends SimpleTagSupport   {
    private String date;
    public void setDate(String date) {
        this.date = date;
    }
    @Override
    public void doTag() throws JspException, IOException {
        SimpleDateFormat sdf1= new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
        SimpleDateFormat sdf2= new SimpleDateFormat("yyyy-MM-dd");
        String result = "";
        try {
            result =sdf2.format(sdf1.parse(date));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        getJspContext().getOut().write(result);
    }
}

2.創建標籤庫文件(在WEB-INF)下面,以tld爲後綴。<short-name>內填標籤庫類的路徑<name>在頁面上用到。<rtexprvalue>表示可以支持EL表達式

<?xml version="1.0" encoding="ISO-8859-1"?>
<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.0</tlib-version>
    <short-name>myshortname</short-name>
    <uri>https://segmentfault.com/u/mshu</uri>
    <tag>
        <name>DateFormat</name>
        <tag-class>tag.DateTag</tag-class>
        <body-content>scriptless</body-content>
        <attribute>
            <name>date</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

3.頁面引入(或者也可以在web.xml中引入)

<%@ taglib prefix="ex" uri="/WEB-INF/tld/date.tld"%>
<ex:DateFormat date="${item.birthdate}"/>   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章