J2ee之自定义jstl函数

背景:

自定义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)}

 

你可能感兴趣的:(jstl)