jsp自定义标签(时间格式化包括Long转时间)
Posted 园芳宝贝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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了。
以上是关于jsp自定义标签(时间格式化包括Long转时间)的主要内容,如果未能解决你的问题,请参考以下文章