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)}

 

重要注意点:

写道
org.apache.jasper.JasperException: Method "cut" for function "cut" not found in class "com.linkrmb.util.UtilsTag"

当发生这个错误的时候就代表写的方法里面是基本类型,应该用封装类型,如:不应该用int而用Integer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值