背景:
自定义jstl function满足自己的需求,编码和时间格式化
实现:
1.自定义工具类:
public class UtilsTag { public static String date(Long time) throws Exception { // String vv = "" + value; // long time = Long.valueOf(vv); Calendar c = Calendar.getInstance(); c.setTimeInMillis(time); SimpleDateFormat dateformat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); String s = dateformat.format(c.getTime()); return s; } public static String encode(String txt) throws Exception { return URLEncoder.encode(txt, "utf-8"); } }
注意点:
a.static
2.自定义tld文件:
<?xml version="1.0" encoding="GBK"?> <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"> <!-- 定义函数版本 --> <tlib-version>1.0</tlib-version> <!-- 定义函数名称 --> <short-name>utils</short-name> <!-- 定义第一个函数 --> <function> <!-- 定义第一个函数:reverse --> <name>encode</name> <!-- 定义函数处理类 --> <function-class>com.pobaicn.wxp.web.UtilsTag</function-class> <!-- 定义函数的对应方法 --> <function-signature> java.lang.String encode(java.lang.String) </function-signature> </function> <function> <name>date</name> <function-class>com.pobaicn.wxp.web.UtilsTag</function-class> <function-signature> java.lang.String date(java.lang.Long) </function-signature> </function> </taglib>
注意点:
a.类全路径
b.方法参数完全一致
3.部署:
web.xml中加入:
<jsp-config> <taglib> <taglib-uri>/utils</taglib-uri> <taglib-location>/WEB-INF/tlds/utils.tld</taglib-location> </taglib> </jsp-config>
4.使用:
<%@ taglib uri="/utils" prefix="utils"%> <a href="${basePath}detail?id=${utils:encode(item.id)}"> [详情] </a> ${utils:date(item.bdate)}
?
原文:http://snv.iteye.com/blog/2217904