jsp自定义标签(时间格式化包括Long转时间)

来源:互联网 发布:winpe装linux 编辑:程序博客网 时间:2024/06/16 14:09

1、jsp自带标签的格式化:

jstl fmt 函数大全:主要针对格式化功能

Tags   
fmt:requestEncoding 
fmt:setLocale 
fmt:timeZone 
fmt:setTimeZone 
fmt:bundle 
fmt:setBundle 
fmt:message 
fmt:param 
fmt:formatNumber 
fmt:parseNumber 
fmt:formatDate 
fmt:parseDate  

 

先在jsp页面上增加:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>...<fmt:formatNumber value="${item.sumAmount}" pattern="##.##" minFractionDigits="2" ></fmt:formatNumber>

a. 格式化数字:

<fmt:formatNumber value="${item.sumAmount}" pattern="##.##" minFractionDigits="2" ></fmt:formatNumber>

b. 格式化时间

日期格式(2016年5月25日23点00分23秒)

<fmt:formatDate value="<%=new Date() %>" pattern="yyyy年MM月dd日HH点mm分ss秒" /><fmt:formatDate value="${date}" pattern="yyyy年MM月dd日HH点mm分ss秒" />

注意,此时,value必须是date类型的数据,不适合long转成date.

 

c. long转成date:

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

package com.portx.util;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Calendar;/** * 用于页面 jstl时间格式化s * Created by gmq on 2016/5/24. */public class DateTag extends TagSupport {    private static final long serialVersionUID = 6464168398214506236L;    private String value;    @Override    public int doStartTag() throws JspException {        String vv = "" + value;        try {            long time = Long.valueOf(vv.trim());            Calendar c = Calendar.getInstance();            c.setTimeInMillis(time);            SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm");            String s = dateformat.format(c.getTime());            pageContext.getOut().write(s);        } catch (Exception e) {            e.printStackTrace();        }        return super.doStartTag();    }    public void setValue(String value) {        this.value = value;    }}
第二步 编写tld文件,datetag.tld,放在/WEB-INF/tld/目录下:
<?xml version="1.0" encoding= "UTF-8"?><taglib>    <tlib-version>1.0</tlib-version>    <jsp-version>1.2</jsp-version>    <short-name>date</short-name>    <tag>        <name>date</name>        <tag-class>com.portx.util.DateTag</tag-class>        <body-content>JSP</body-content>        <attribute>            <name>value</name>            <required>true</required>            <rtexprvalue>true</rtexprvalue>        </attribute>    </tag></taglib>
第三步  在web.xml中加入引用:
    <jsp-config>        <taglib>            <taglib-uri>/tags</taglib-uri>            <taglib-location>/WEB-INF/tld/datetag.tld</taglib-location>        </taglib>    </jsp-config>
第四步 在jsp页面开始使用:
<%@ taglib uri="/tags" prefix="date"%>....<date:date value ="${item.createdTime} "/>