全国咨询热线:400-618-4000

Java培训之fmt标签详解

更新时间:2019年04月20日23时10分 来源:传智播客Java培训学院


fmt标签库是用来格式化输出的,而我们今天需要学习的就是格式化日期和数字。

1.格式化日期

格式化日期的标签是:
<fmt:formatDate value=”xxx” pattern=”xxx”/>
其中两个属性代表的意思如下:
l value:指定一个Date类型的变量;
l pattern:用来指定输出的日期模板,例如:yyyy-MM-dd HH:mm:ss。
下面通过一个小例子来练习如何使用fmt的日期格式化标签来格式化日期,如下所示:
(1)在web应用Example10的WebRoot目录下新建一个jsp文件,名称为fmt.jsp,主要代码如例1-1所示:
例1-1 fmt.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
... ...
<body>
    <%
     Date date=new Date();
     request.setAttribute("date", date);
     %>
     <fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/>
</body>
例1-1中,首先创建一个Date类型的对象,然后将该对象保存在request域中,最后使用fmt的日期格式化标签对该Date类型的对象进行格式化。
(2)将Example10发布到服务器中,然后启动服务器,在浏览器端访问fmt.jsp页面,浏览器显示结果如图1-1所示:

图1-1 浏览器显示结果
需要注意的是,日期格式化标签中的value属性的值一定要是一个Date类型的变量,如果给它一个时间格式的字符串,在访问fmt.jsp页面时会报错。

2.格式化数字

fmt标签库还提供了格式化数字的标签,如下:
<fmt:formatNumber value=”xxx” pattern=”xxx”/>
标签中的两个属性代表的意义分别如下:
l value:指定数字类型的变量或常量;
l pattern:指定格式化数字的类型,例如:0.00,#.##。
下面通过一个小案例来练习如何使用数字格式化标签格式化数字,如下:
(1)在fmt.jsp页面中添加如例1-2所示代码:
此处省略例1-1中的代码
<fmt:formatNumber value="1.23" pattern="0.0"> </fmt:formatNumber>
例1-2中,value属性的值是“1.23”,是一个常量;pattern的值是“0.0”代表的是保留小数点后一位小数。
(2)浏览器端访问fmt.jsp页面,浏览器显示结果如图1-2所示:

图1-2 浏览器显示结果
(3)对例1-2稍作修改,如例1-3所示:
此处省略例1-1中的代码
<%
       request.setAttribute("num1",3.1415926);
%>
<fmt:formatNumber value="${num1 }" pattern="0.000"> </fmt:formatNumber>
例1-3中,将一个数“3.1415926”保存在request域中,然后使用数字格式化标签对其进行格式化,格式化的模板是保留小数点后三位小数。
(4)在浏览器端访问fmt.jsp,浏览器显示结果如图1-3所示:

图1-3 浏览器显示结果
由图1-3可知,pattern=“0.000”不仅保留小数点后三位小数,还进行了四舍五入。
(5)将例1-3中的数由“3.1415926”改成“3.14”,再次访问fmt.jsp,浏览器显示结果如图1-4所示:

图1-4中,3.14后面只有两位小数,而pattern的值为0.000,即保留小数点后面三位小数,不够的用0补上。
(6)将例1-3中的pattern的值改为“#.###“,然后再次访问fmt.jsp,浏览器显示结果如图1-5所示:

图1-5 浏览器显示结果
由图1-5可知,pattern为“#.###“也是保留小数点后三位小数,并进行四舍五入。
(7)再次将数“3.1415926“改成”3.14“,然后访问fmt.jsp,浏览器显示结果如图1-6所示:

图1-6 浏览器显示结果
图1-6中,格式化后的数字是“3.14“,而pattern的值为”#.###“是保留小数点后三位数字,如果位数不够三位,不补0,按原样输出。这一点与“0.000”不同。

本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee