自定义tag标签-实现long类型转换成Date类型

数据库里存储的是bigint型的时间,entity实体中存放的是long类型的标签,现在想输出到jsp页面,由于使用的是jstl标签,而要显示的是可读的时间类型,找来找去有个 fmt:formatDate可以转化,但是只能将String类型的转成date型,long型则不可以,思考了好久,又不想破环jsp页面这种标签结构,参考网上jstl标签编写方法,如下:
第一步 写一个类继承TagSupport,实现doStartTag() 方法。

package com.pp.yxx.util.tags;

import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import com.pp.yxx.util.DateUtils;

/**
 * 用于页面 jstl时间格式化
 *
 * @Title: JSTLDateUtils.java
 * @Description: 转换Long时间戳为时间格式
 * @author phpdragon
 * @date 2014 -3- 4 下午06:28:51
 */
public class Long2DateTag extends TagSupport {

    private static final long serialVersionUID = 6464168398214506236L;

    private String value;
    private String format;

    @Override
    public int doStartTag() throws JspException {
        String s = format == null ? DateUtils.timestamp2Time(value) : DateUtils
                .timestamp2Time(value, format);
        try {
            pageContext.getOut().write(s);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }

    public void setValue(String value) {
        this.value = value;
    }

    public void setFormat(String format) {
        this.format = format;
    }

}

第二步 编写tld文件,extendtag.tld,放在/WEB-INF目录下

<?xml version="1.0" encoding= "UTF-8"?>
<taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>ext</short-name>
    <uri>/extendTags</uri>
    <tag>
        <description>
            转换long型参数为时间格式
        </description>
        <name>long2date</name>
        <tag-class>com.pp.yxx.util.tags.Long2DateTag</tag-class>
        <!--如果不需要标签体则设置empty,反之设定jsp -->
        <body-content>JSP</body-content>
        <attribute>
            <description>
                需要装换的值
            </description>
            <name>value</name>
            <!-- 是否是必须,如果非必须没设置则为空 -->
            <required>true</required>
            <!-- 是否可在属性中使用表达式 -->
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <description>
                转换格式
            </description>
            <name>format</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

第三步  在web.xml中加入引用

<!-- 自定义TAG标签 -->
    <jsp-config>
        <taglib>
            <taglib-uri>/extendTags</taglib-uri>
            <!-- tld文件所在的位置 -->
            <taglib-location>/WEB-INF/extendtag.tld</taglib-location>
    </taglib>
</jsp-config>

第四步 在jsp页面开始使用

<%@ taglib uri="/extendTags" prefix="ext"%>
<ext:long2date value ="${publish}" format="yyyy-MM-dd HH:mm:ss" />

上述方式即可实现所述功能!

参考:http://hfutxf.iteye.com/blog/673472

时间: 2024-08-04 03:18:35

自定义tag标签-实现long类型转换成Date类型的相关文章

java中将SimpleDateFormat类型转换成Date类型

try {String dateString = "2009-08-02 13:43:00";DateFormat df = SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = df.parse(dateString);} catch(Exception ex) {} 结果:date --> Sun Aug 02 13:44:00 CST 2009 原文地址:https://www.cnblogs.com/c

struts2 自定义tag标签

在项目中可能有很多相同的jsp页面表示功能,这时可以使用自定义的tag进行定义,渐少重复的工作量便于日后维护! 下面就基于struts2进行自定义标签的定义与实现: 首先:自定义类MyTag继承struts2的Component package cookielogin; import java.io.IOException; import java.io.Writer; import org.apache.struts2.components.Component; import com.open

Java String类型转换成Date日期类型

插入数据库时,存入当前日期,需要格式转换 import java.text.SimpleDateFormat; formatter = new SimpleDateFormat( "yyyy-MM-dd "); String date = formatter.format(new Date());//格式化数据,取当前时间结果为 2014-10-30 String格式的数据转化成Date格式 import java.text.SimpleDateFormat; formatter =

编程题:为枚举类型变量赋值。将整型值强制类型转换成枚举类型赋值

编程题:为枚举类型变量赋值.将整型值强制类型转换成枚举类型赋值 #include<stdio.h> void main() { enum season {spring,summer,autumn,winter}s1,s2; s1=summer; s2=(enum season)2; printf("s1=%d,s2=%d\n",s1,s2); } 编程题:为枚举类型变量赋值.将整型值强制类型转换成枚举类型赋值,布布扣,bubuko.com

Java日期格式化之将String类型的GMT,GST日期转换成Date类型

请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的.这样不得不面对将String 类型的日期

关于springmvc怎么自动把前台string类型日期字段转换成date类型

关于springmvc怎么把前台string类型日期字段转换成date类型字段,小狼想了好久,阅读spring源代码,发现一个很好玩的注解@DateTimeFormat(pattern="yyyy-MM-dd") 对,就是他,小狼是这么使用的 @Controller public class Login { @RequestMapping("/login") public String login(String username,@DateTimeFormat(pa

基本类型转换成NSNumber类型

int i=100; float f=2.34; NSNumber *n1=[NSNumber numberWithInt:i]; NSNumber *n2=[NSNumber numberWithFloat:f] 将NSNumber类型转换成基本类型 i=[n1 intvalue] f=[n2 floatValue];

Java byte类型转换成int类型时需要 &amp; 0XFF的原因

Java byte类型转换成int类型时需要 & 0XFF的原因 假设有byte b  = -1; 那么b的二进制是:1111 1111. 如果将b直接转换为int类型,那么二进制是 1111 1111 1111 1111 1111 1111 1111 1111,这显然就不对了. 所以要与b进行&运算 0XFF的二进制是 0000 0000 0000 0000 0000 0000 1111 1111 那么运算之后到结果就是 0000 0000 0000 0000 0000 0000 111

SQL Server 2008 Datetime Cast 成 Date 类型可以使用索引(转载)

很久没写blog,不是懒,实在是最近我这的访问速度不好,用firefox经常上传不了图片 ....... 今天无意发现了SQL Server 2008 Datetime Cast 成 Date 类型可以使用索引,分享一下: 测试环境: USE TEMPDBGO CREATE TABLE TB(ID INT IDENTITY(1,1) PRIMARY KEY,NAME VARCHAR(200),OPTIME DATETIME DEFAULT GETDATE())GODECLARE @I INT =