zoukankan      html  css  js  c++  java
  • jsp自定义标签(时间格式化包括Long转时间)

    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} "/>

    此时就可以把long转换成date类型的string了。

  • 相关阅读:
    Mybatis+Spring整合
    java 线程详解
    java 异常处理
    java 日期 时间操作
    RandomAccessFile 详解
    js导入excel
    java 常见异常
    常用的java程序片段(算法)
    IO流详解
    json 详解
  • 原文地址:https://www.cnblogs.com/gmq-sh/p/5528989.html
Copyright © 2011-2022 走看看