JSTL中的格式化动作标签
2022-05-01 本文已影响0人
马佳乐
JSTL提供了格式化和解析数字和日期的标签,我们讨论里面有: formatNumber、formatDate,parseNumber及parseDate。
formatNumber标签
formatNumber标签用于格式化数字,百分比,货币。该标签用指定的格式或精度来格式化数字。(将数值型数据转换成指定格式的字符串类型。)
需要导入:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
语法格式:
<fmt:formatNumber value="<string>" type="<string>" var="<string>" scope="<string>" />
属性
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要显示的数字 | 是 | 无 |
type | NUMBER,CURRENCY,或PERCENT类型 | 否 | Number |
var | 存储格式化数字的变量 | 否 | Print to page |
scope | var属性的作用域 | 否 | page |
注意:
- 如果设置了var属性,则格式化后的结果不会输出,需要通过EL表达式获取var对应的限域变量名
- 默认的类型(typle)的取值为number。可取值: number数值型、percent百分比类型、currency货币型
<fmt:formatNumber value="10" type="number" var="num" />${num }<br> <!-- 10 -->
<fmt:formatNumber value="10" type="percent" /><br> <!-- 1,000% -->
<fmt:formatNumber value="10" type="currency" /><br> <!-- ¥10.00 -->
<!-- 设置时区 -->
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="10" type="currency" /> <!-- $10.00 -->
formatDate标签
formatDate标签用于使用不同的方式格式化日期。(将Date型数据转换成指定格式的字符串类型。)
语法格式
<fmt:formatDate value="<string>" type="<string>" dateStyle="<string>" timeStyle="<string>" pattern="<string>" timeZone="<string>" var="<string>" scope="<string>" />
属性
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要显示的日期 | 是 | 无 |
type | DATE,TIME,或 BOTH | 否 | date |
dateStyle | FULL,LONG,MEDIUM, SHORT,或 DEFAULT | 否 | default |
timeStyle | FULL,LONG, MEDIUM,SHORT,或 DEFAULT | 否 | default |
pattern | 自定义格式模式 | 否 | 无 |
timeZone | 显示日期的时区 | 否 | 默认时区 |
var | 存储格式化日期的变量名 | 否 | 显示在页面 |
scope | 存储格式化日志变量的范围 | 否 | 页面 |
标签格式模式
代码 | 描述 | 实例 |
---|---|---|
y | 不包含纪元的年份。如果不包含纪元的年份小于10,则显示不具有前导零的年份。 | 2022 |
M | 月份数字。一位数的月份没有前导零。 | April & 4 |
d | 月中的某一天。一位数的日期没有前导零。 | 1 |
h | 12小时制的小时。一位数的小时数没有前导零。 | 12 |
H | 24小时制的小时。一位数的小时数没有前导零。 | 15 |
m | 分钟。一位数的分钟数没有前导零。 | 45 |
s | 秒。一位数的秒数没有前导零。 | 52 |
<%
request.setAttribute("myDate", new Date());
%>
${myDate }<br>
<fmt:formatDate value="${myDate }"/><br>
<fmt:formatDate value="${myDate }" type="date"/><br>
<fmt:formatDate value="${myDate }" type="time"/><br>
<fmt:formatDate value="${myDate }" type="both"/><br>
<fmt:formatDate value="${myDate }" type="both" dateStyle="full"/><br>
<fmt:formatDate value="${myDate }" type="both" dateStyle="short"/><br>
<fmt:formatDate value="${myDate }" pattern="yyyy-MM-dd"/><br>
parseNumber标签
parseNumber标签用来解析数字,百分数,货币。(parseNumber标签可以将数字、货币或百分比类型的字符串转换成数值型。)
语法格式
<fmt:parseNumber value="<string>" type="<string>" var="<string>" scope="<string>" />
属性
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要解析的数宁 | 否 | Body |
type | NUMBER,,CURRENCY,或PERCENT | 否 | number |
var | 存储待解析数字的变量 | 否 | Print to page |
scope | var属性的作用域 | 否 | page |
<fmt:parseNumber value="100" /><br>
<fmt:parseNumber value="100" type="number" /><br>
<fmt:parseNumber value="100%" type="percent" /><br>
parseDate标签
parseDate标签用于解析日期。(将指定格式的字符串转换成Date类型。)
语法格式
<fmt:parseDate value="<string>" type="<string>" dateStyle="<string>" timeStyle="<string>" pattern="<string>" timeZone="<string>" var="<string>" scope="<string>" />
属性
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要显示的日期 | 是 | 无 |
type | DATE,TIME,或 BOTH | 否 | date |
dateStyle | FULL,LONG,MEDIUM, SHORT,或 DEFAULT | 否 | default |
timeStyle | FULL,LONG, MEDIUM,SHORT,或 DEFAULT | 否 | default |
pattern | 自定义格式模式 | 否 | 无 |
timeZone | 显示日期的时区 | 否 | 默认时区 |
var | 存储格式化日期的变量名 | 否 | 显示在页面 |
scope | 存储格式化日志变量的范围 | 否 | 页面 |
<fmt:parseDate value="2022-5-1" type="date" /><br>
<fmt:parseDate value="2022/5/1" pattern="yyyy/MM/dd" />