標籤能幹什麼?
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}"/>