如何编写jstl自定义标签(示例:自定义jstl Long型时间转为date型)

jstl有很多时间格式化的标签,但貌似只是支持date型的,更多的我也没去细搜,不过貌似就是不支持long型,其实long型对我们也是很有

用的,比如说按时间排序、、很方便是不是、 在jstl里就比较麻烦了,好在jstl可以写自定义标签,写这篇文章的目的其实也不只是介绍这个

long型时间格式化问题,主要还是怎么写自定义标签.
package com.controller.touch;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

/**
* 用于页面jstl时间格式化
* @author jiangnan
*
*/
public class JSTLDateUtils extends TagSupport {

/**
*
*/
private static final long serialVersionUID = -3354015192721342312L;
private String value;
public void setValue(String value) {
this.value = value;
}
private String parttern;
public void setValue(String parttern ) {
this.value = parttern ;
}
public int doStartTag() throws JspException{
String vv = String.valueOf(value);
long time = Long.valueOf(vv);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(time);
SimpleDateFormat dateformat =new SimpleDateFormat(parttern);
String s = dateformat.format(c.getTime());
try {
pageContext.getOut().write(s);
} catch (IOException e) {
e.printStackTrace();
}
return super.doStartTag();
}
public static void main(String[] args) {
long a =1332744845078l;
long time = Long.valueOf(a);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(time);
SimpleDateFormat dateformat =new SimpleDateFormat("MM-dd HH:mm");
String s = dateformat.format(c.getTime());
System.out.println(s);
}
}

在web.xml 中要添加这些东西:
<!-- 自定义JSTL时间格式化 -->
<jsp-config>
<taglib>
<taglib-uri>/tags</taglib-uri>
<taglib-location>/WEB-INF/datetag.tld</taglib-location>
</taglib>
</jsp-config>

datetag.tld则按下面书写
<?xml version="1.0" encoding="UTF-8"?>
<taglib>
<tlib-version>1.1</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>date</short-name>//这里说明一下,开始我也没加这个东西,但是发现resin疯狂的报错啊,后来才发现resin对tld文件做严格语法检查,所以一定要加上这个
<tag>
<name>date</name>
<tag-class>com.controller.touch.JSTLDateUtils</tag-class>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parttern</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

最后jsp中就可以使用如下标签进行写代码了

<date:date value="${time}" pattern="yyyy-MM-dd HH:mm:ss"/>

别忘记在页头加上引用 <%@ taglib uri="/tags" prefix="date"%> 否则会报错哦

如果想使用多个自定义的标签可以编写多个类,然后再tld中进行添加对用的tag就可以啦
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值