自定义JSP的日期格式化标签

原创 2017年03月29日 01:00:15

平常在做项目的时候,经常会遇到要在JSP页面中,将我们后台传过来的long型的时间戳,转换为日期格式进行显示(如后台传过来 1490715599560,我们需要在页面上显示为 2017-03-28 23:39:59),这里记录并跟大家分享一下通过自定义标签的方式进行日期格式化。

1、自定义标签处理类

package com.daidai.demo.tag;

import java.text.SimpleDateFormat;
import java.util.Date;

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

import org.apache.commons.lang.StringUtils;

public class DateTag extends TagSupport {

    private static final long serialVersionUID = 6464168398214506236L;

    // 默认日期格式
    public static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";

    private String value; // long型 时间戳
    private String pattern; // 日期格式,如果不传则为默认格式

    @Override
    public int doStartTag() throws JspException {

        long l = 0l;  
        if (StringUtils.isNotBlank(value)) {  
            l = Long.parseLong(value);
        }

        if(StringUtils.isBlank(pattern)){
            pattern = DEFAULT_FORMAT;
        }

        String targetTime = " ";

        if(l > 0L){
            targetTime = getFormatData(l, pattern);
        }

        try {
            super.pageContext.getOut().write(targetTime);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }

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

    public void setPattern(String pattern) {
        this.pattern = pattern;
    }

    /**
     * long型时间戳转日期格式
     * @param l
     * @param formatStr 
     * @return
     */
    public static String getFormatData(long l, String formatStr) {
        Date d = new Date(l);
        String date = new SimpleDateFormat(formatStr).format(d);
        return date;
    }
}

2、编写tld文件WEB_INF/tld/tags.tld

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <description>JSP Tag Library</description>
    <tlib-version>1.0</tlib-version>
    <short-name>daidai</short-name>
    <uri>http://daidai.demo.com/tags</uri>

    <tag>
        <description>时间戳转日期类型</description>
        <name>formatDate</name>
        <tag-class>com.daidai.demo.tag.DateTag</tag-class>
        <body-content>JSP</body-content>
        <attribute>
          <description>时间戳</description>
          <name>value</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
          <description>需要输出的日期格式,默认为yyyy-MM-dd HH:mm:ss</description>
          <name>pattern</name>
          <required>false</required>
          <rtexprvalue>false</rtexprvalue>
        </attribute>
    </tag>
</taglib> 

3、在JSP页面中使用

<%@ taglib prefix="daidai" uri="http://daidai.demo.com/tags" %>
<daidai:formatDate value="${element.createTime}" pattern="yyyy-MM-dd"/>

如:
<daidai:formatDate value="1490715599560" pattern="yyyy-MM-dd"/>
在页面上会显示:2017-03-28
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JSP 自定义标签实现数据精度格式化

在java web 开发中,以jsp作为页面显示的环境,jsp标签的使用大大简化了页面对后台数据的操作,但是对于一些特殊的要求,可以根据需求自定义标签实现。废话少说,直接上步奏代码。 开发工具:Ecl...

jsp日期格式化标签<fmt>

最近做项目遇到了一个时间问题,如下图所示。从数据库读出来的时间绑定到jsp后不是我想要的效果:   2016-03-12 23:25     数据绑定代码实现 ...

jstl 格式化时间日期标签讲解

标签介绍: 后台:      request.setAttribute("today",new Date()); 前台:                                        ...
  • java_min
  • java_min
  • 2010年10月20日 13:31
  • 31346

Eclipse-Eclispe导入正确工程后出现xml等文件报错

我用Eclipse IDE导入一个正确的项目工程,一些xml配置文件和jsp页面报错,点进去查看具体的错误,xml文件是一些头文件处报错,jsp是一些函数等等。可是别人导入没有报错。 这是因为我们写...

各种集合类型底层实现原理&nbsp;&nbsp;泽0715…

个人官方网站 :点击进入 Set和Map的关系 Set代表无序,不能重复的集合;Map代表Key-Value组成的集合,是一种关联数组。Map的Key要求是不能重复,没有顺序。把Map的所有Key...
  • lyp0715
  • lyp0715
  • 2016年01月21日 10:21
  • 4438

JSP自定义标签-日期格式化

在直接

springmvc中自定义日期转换器及其jsp页面日期显示的一个常用标签

在默认情况下,springmvc不能将String类型转成Date类型,必须自定义类型转换器

自定义jsp标签jar

  • 2016年07月06日 18:06
  • 575KB
  • 下载

掌握自定义JSP标签(html).

  • 2009年06月16日 23:25
  • 329KB
  • 下载

自定义标签,时间戳与日期时间转换 jsp页面

先说说自己的需求: 数据库多条数据,时间字段存的是10位php格式的时间戳,我是需要用java在jsp页面做数据列表展示,就牵扯到时间戳与日期格式时间转换问题。 本来可以new Date(时间戳)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义JSP的日期格式化标签
举报原因:
原因补充:

(最多只允许输入30个字)