背景:
自定义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