背景:在使用EL表达式循环输出日期类型的数据,由于不知道 fmt 已经定义了日期类型的格式化方法,就自定义了一个
1.编写java静态方法 (class 是DateUtils)
public static String getStringDate(Date date, String timeFormat){
SimpleDateFormat formatter = new SimpleDateFormat(timeFormat);
String dateString = formatter.format(date);
return dateString;
}
2.添加 .tld 配置文件(可以放在WEB-INF文件夹下 )
<?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">
<description>JSTL 1.1 functions library</description>
<display-name>JSTL functions</display-name>
<tlib-version>1.1</tlib-version>
<short-name>func</short-name>
<uri>/WEB-INF/func.tld</uri>
<function>
<description>
Converts all of the characters of a string to lower case.
</description>
<name>getStringDate</name>
<function-class>com.util.DateUtils</function-class>
<function-signature>java.lang.String getStringDate(java.util.Date,java.lang.String)</function-signature>
<example>
Product name: ${func.getStringDate(java.util.Date,java.lang.String)}
</example>
</function>
</taglib>
3.web.xml 根节点下添加 tld 文件的配置 (tomcat 7.0 中可用,其他环境未测试)
<jsp-config>
<!--<taglib>-->
<!--<taglib-uri>/WEB-INF/func.tld</taglib-uri><!–与tld中uri一致就可–>-->
<!--<taglib-location>/WEB-INF/func.tld</taglib-location><!–tld所在的位置–>-->
<!--</taglib>-->
<jsp-property-group>
<url-pattern>/WEB-INF/func.tld</url-pattern><!--与tld中uri一致就可 -->
<include-coda>/WEB-INF/func.tld</include-coda><!-- tld所在的位置-->
</jsp-property-group>
</jsp-config>
4.jsp引用 .tld 文件
<%@ taglib uri="/WEB-INF/func.tld" prefix="func"%>
5.调用自定义方法
<td>${func:getStringDate(data.createdate, "yyyy-MM-dd hh-mm-ss")}</td>