首页 > 代码库 > jstl foreach标签格式化date,string类型数据
jstl foreach标签格式化date,string类型数据
本文要说jsp中date类型格式化和string类型分割处理
首先说date数据格式化
1、jsp中给date类型数据格式化首先需要引入
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
如果后台带过来的数据是date类型,那就好办了,只要像下面这样用fmt标签就可以了,pattern定义时间的格式
<c:forEach items="${list}" var="m">
<tr height="45">
<td>${m.userName}</td>
<td><fmt:formatDate value="${m.time}" pattern="yyyy-MM-dd HH:mm"></fmt:formatDate> </td>
</tr>
</c:forEach>
如果后台带过来的数据是string类型,那么这样做就会多.0的后缀,这种情况要用到fmt:parseDate标签了,下面这样
<c:forEach items="${list}" var="m">
<fmt:parseDate var="t" value="${m.time}" pattern="yyyy-MM-dd HH:mm"/>
<tr height="45">
<td>${m.userName}</td>
<td><fmt:formatDate value="${t}" pattern="yyyy-MM-dd HH:mm"></fmt:formatDate> </td>
</tr>
</c:forEach>
fmt:parseDate标签的var定义变量名字,这个名字就是fmt:formatDate需要使用的value,两个名字要一致
2、下面说string类型分割处理,需要借助functions库,jsp中要引入
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
我做的那个项目身份证号要前六位,中间八位,后面的分三部分分割,银行卡号每四位分割,目的是为了看的更清楚,使用者看这些连续数字,时间长了可能会看错,分割一下会好点
首先要定义一种分割的样式:
.gap tm{ padding-right:5px;}
就用到一个内边距属性,表示的意思是class是gap的标签中的tm标签内边距5px;分割的字符串放到tm标签下就可以达到分割的效果
<c:forEach items="${list}" var="m">
<fmt:parseDate var="t" value="${m.time}" pattern="yyyy-MM-dd HH:mm"/>
<tr height="45">
<td>${m.userName}</td>
<td class="gap"><tm>${fn:substring(m.id, 0,6)}</tm><tm>${fn:substring(m.id, 6,14)}</tm><tm>${fn:substring(m.id,14,fn:length(m.id))}</tm></td>
<td><fmt:formatDate value="${t}" pattern="yyyy-MM-dd HH:mm"></fmt:formatDate> </td>
</tr>
</c:forEach>
这里假设id就是身份证号,fn:substring(a,b,c)方法是截取字符串a,从b截取到c,b和c都是数字,代表字符串对应长度的字符位置,fn:length(a)是表示字符串a的长度
这样就会出现效果
这里有一个重要的提醒就是:为什么使用标签分割而不使用空格 这样分割?
这是因为用标签分割的在复制的时候是连续的,用空格分割的就真的分开了,实际使用的时候还要手动去掉空格,造成不必要的麻烦。
本文出自 “每天进步一点点” 博客,请务必保留此出处http://wangguangshuo.blog.51cto.com/10283213/1889028
jstl foreach标签格式化date,string类型数据