1. 什么是格式化标签库?
格式化标签库又被称为I18N格式标签库,I18N是Internationalization(国际化)的缩写。在不同的国家和地区,对数字和货币等的表示是有所不同的
引用路径为:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
2. 格式化标签库的属性介绍:
Ø 国际化分类标签包含2个标签
Ø 一个是设定语言地区的标签 <fmt:setLocale>
Ø 设定字符编码集合的标签 <fmt:requestEncoding>
Ø 消息分类标签包含4个标签
Ø 本地化消息标签 <fmt:message>
Ø 消息动态参数标签 <fmt:param>
Ø 选择资源包标签 <fmt:bundle>
Ø 设置资源包标签 <fmt:setBundle>
Ø 数字日期格式化分类标签包含6个标签
Ø 储存设定的时区标签 <ftm:setTimeZone>
Ø 设置时区标签 <ftm:TimeZone>
Ø 格式化数字标签 <ftm:formatNumber>
Ø 格式化日期标签 <ftm:formatDate>
Ø 日期和时间值解析标签 <ftm:parseDate>
Ø 数值字符串解析标签 <ftm:parseNumber>
3. 常用属性介绍:
<fmt:message>标签用来根据本地化环境从资源包检索文本信息,从而实现文本的本地化
<fmt:bundle>标签用来根据本地化环境来选择所需的资源包
<fmt:setBundle>标签用来为本地化环境设置一个缺省的资源包,在<fmt:message>标签的特定作用域内起作用
<fmt:param>标签用来为<fmt:message>标签指定文本消息参数值,动态的设定参数
<fmt:timeZone>标签用来设置时区
<fmt:setTimeZone>标签用来将设定了的时区存储在某个范围变量var中
<fmt:formatDate>标签用来设定日期和时间的格式并按照设置的格式给予输出
<fmt:parseDate>标签用于解析日期和时间值
<fmt:formatNumber>标签用于格式化数值,即设置特定语言环境下的数值的输出方式
<fmt:parseNumber>标签用来解析数值字符串
4. 常用属性的使用
<h2>格式化标签示例</h2>
<!-- formatNumber: type 取值有三个 number数字 currency 货币 percent百分数格式-->
<fmt:setLocale value="zh_CN" scope="application"/>
1.按照中文格式格式化数字:
<fmt:formatNumber var="fn1" value="45.6"type="currency" />
<c:out value="${fn1}" />
<br />
<fmt:setLocale value="en_US" />
2.按照英文格式格式化数字:
<fmt:formatNumber var="fn2" value="12.3"type="currency" />
<c:out value="${fn2}" />
<br /> 3.数字格式:
<fmt:formatNumber var="fn3" value="1234567"type="number" />
<c:out value="${fn3}" />
<br /> 4.百分数格式:
<fmt:formatNumber var="fn4" value="1234567"type="percent" />
<c:out value="${fn4}" />
<br />
<!-- ------------------------------- -->
<hr>
<h3>时间格式</h3>
<!-- fmt:formatDate:type 有三种取值 date(yyyy年MM月dd日) time(HH:mm:ss) both(yyyy年MM月dd日 HH:mm:ss) -->
<c:set var="d" value="<%=new Date() %>" />
1.格式1:
<fmt:formatDate value="${d}" pattern="yyyy年MM月dd日" type="date"
dateStyle="full" />
<br /> 2.格式2:
<fmt:formatDate value="${d}" pattern="HH:mm:ss"type="time"
dateStyle="full" />
<br /> 3.格式3:
<fmt:formatDate value="${d}" pattern="yyyy年MM月dd日 HH:mm:ss"
type="both" dateStyle="full"/>
<br />4.格式4:<!-- 国外的时间格式 -->
<fmt:formatDate value="${d}" type="both"timeZone="GMT" dateStyle="full"/>
<br />
<hr/>
<%
request.setAttribute("num",new Double(123.45));
%>
<!-- 绑定属性文件 -->
<fmt:bundle basename="Resource">
<!-- 通过key值取到Value数据 -->
<fmt:message key="str">
<fmt:param value="zhangsan" />
<fmt:param value="${d}" />
<fmt:param value="${d}" />
<fmt:param value="${num}" />
</fmt:message>
</fmt:bundle>