自定义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 自定义标签实现字符串转换时间格式

在项目应用中需要将一些字符串转换为年月日时分秒的格式。 实现方法很多,但是显得比较麻烦,用自定义标签相当方便简洁。 用自定义标签操作也不是很麻烦。 具体实现类 package com.ky.a...
  • yx511500623
  • yx511500623
  • 2015年05月20日 10:23
  • 1262

日期转换JSTL JSP 页面显示日期格式设置

在页面引入:http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>   然后在你想要显示的地方设置:   这样就可以显示pattern里的格式了...
  • qq_29347295
  • qq_29347295
  • 2016年11月06日 10:18
  • 4652

jsp 页面格式化 日期标签 jstl fmt

1)导入jstl 包,加载ftm标签 首先将jstl的jar包放入类库中,使用1.2版本 其次在jsp文件中引入所需要的 标记库,对于 ftm 标签,如下:   Html代...
  • shangzhiliang_2008
  • shangzhiliang_2008
  • 2014年06月20日 12:34
  • 4989

使用JSTL标签fmt格式化字符串型日期

jsp页面需引入fmt标签: 使用: ---将字符串型日期转换为日期型 ---对日期进行格式化...
  • caixiajia
  • caixiajia
  • 2016年10月14日 10:09
  • 8823

在jsp页面中格式化字符串类型的时间到指定的类型

我数据库中存放的是时间格式(sql server 2008数据库),和数据库表对应的JavaBean存放的是Date类型的。由于在jsp页面显示的是形如“Fri Apr 13 00:00:00 CST...
  • ylchou
  • ylchou
  • 2012年04月19日 19:48
  • 4295

在jsp页面中格式化时间

在jsp页面中格式化字符串类型的时间到指定的类型 和数据库表对应的JavaBean存放的是String类型的。由于在jsp页面显示的是形如“2017-07-3 00:00:00....
  • sinat_28597179
  • sinat_28597179
  • 2017年07月06日 09:13
  • 206

补充 jsp 页面的日期显示的格式问题

补充 jsp 页面的日期显示的格式问题
  • sinat_27488551
  • sinat_27488551
  • 2015年08月26日 15:47
  • 408

jsp页面日期格式化

jsp页面日期格式化
  • xiaoyida11
  • xiaoyida11
  • 2014年01月24日 13:50
  • 2740

JSP 日期处理

使用JSP最重要的优势之一,就是可以使用所有Java  API。本章将会详细地讲述Java中的Date类,它在java.util包下,封装了当前日期和时间。 Date类有两个构造函数。第一个构造函数...
  • u013126903
  • u013126903
  • 2017年03月15日 15:36
  • 84

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

平常在做项目的时候,经常会遇到要在JSP页面中,将我们后台传过来的long型的时间戳,转换为日期格式进行显示(如后台传过来 1490715599560,我们需要在页面上显示为 2017-03-28 2...
  • daidaineteasy
  • daidaineteasy
  • 2017年03月29日 01:00
  • 1038
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义JSP的日期格式化标签
举报原因:
原因补充:

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