标签能干什么?
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}"/>