在JSTL中,國際化/格式化標籤有;
國際化標籤
<fmt:setLocale>
<fmt:bundle>
<fmt:setBundle>
<fmt:message>
<fmt:param>
<fmt:requestEncoding>
格式化標籤
<fmt:timeZone>
<fmt:setTimeZone>
<fmt:formatNumber>
<fmt:parseNumber>
<fmt:formatDate>
<fmt:parseDate>
1、<fmt:setLocale>
用於設置 Locale 環境。
屬性:
value:Locale環境的指定,可以是java.util.Locale 或 String 類型的實例。
scope:Locale環境變量的作用範圍(可選)
舉例:
<fmt:setLocalevalue="zh_CN"/> 表示設置本地環境爲簡體中文。
<fmt:setLocalevalue="en_US"/> 表示設置本地環境爲美國英語。
2、<fmt:bundle>和<fmt:setBundle>
這兩組標籤用於資源配置文件的綁定,唯一不同的是 <fmt:bundle>標籤將資源配置文件綁定於它標籤體中的顯示,<fmt:setBundle>標籤則允許將資源配置文件保存爲一個變量,在之後的工作可以根據該變量來進行資源配置文件綁定。
屬性:
basename:資源配置文件的指定,只需要指定文件名而無須擴展名,二組標籤共有的屬性。
var:<fmt:setBundle> 獨有的屬性,用於保存資源配置文件爲一個變量。
scope:變量的作用範圍。
舉例:
<fmt:setLocalevalue="en_US "/>
<fmt:setBundlebasename="message" var="message"/>
該示例將會查找一個名爲 message_en_US.properties 的資源配置文件,來作爲顯示的Resource 綁定。
3、<fmt:message>
用於信息顯示的標籤,將顯示資源配置文件中定義的信息。
屬性:
key:資源配置文件的“鍵”指定
bundle:若使用<fmt:setBundle> 保存了資源配置文件,該屬性就可以從保存的資源配置文件中進行查找
var:將顯示信息保存爲一個變量
scope:變量的作用範圍
舉例:
<fmt:setBundlebasename="message" var="message"/>
<fmt:bundlebasename="allMessage">
<fmt:messagekey="userName" />
<fmt:message key="password"bundle="${message}"/>
</fmt:bundle>
該示例使用了兩種資源配置文件的綁定的做法,“message”資源配置文件利用 <fmt:setBundle> 標籤被賦於了變量“message”,而作爲 <fmt:bundle> 標籤定義的“allMessage”資源配置文件作用於其標籤體內的顯示。
第一個 <fmt:message> 標籤將使用“allMessage”資源配置文件中“鍵”爲“userName”的信息顯示。
第二個 <fmt:message> 標籤雖然被定義在<fmt:bundle> 標籤體內,但是它使用了 bundle 屬性,因此將指定之前由 <fmt:setBundle> 標籤保存的“ message ”資源配置文件,該“鍵”爲“ password ”的信息顯示。
4、<fmt:param>
<fmt:param>標籤應該位於<fmt:message> 標籤內,將爲該消息標籤提供參數值。它只有一個屬性 value 。
<fmt:param> 標籤有兩種使用版本,一種是直接將參數值寫在 value 屬性中,另一種是將參數值寫在標籤體內。
5、<fmt:requestEncoding>
用於爲請求設置字符編碼。它只有一個屬性 value ,在該屬性中可以定義字符編碼。
6、<fmt:timeZone>和<fmt:setTimeZone>
這兩組標籤都用於設定一個時區。唯一不同的是 <fmt:timeZone> 標籤將使得在其標籤體內的工作可以使用該時區設置, <fmt:setBundle> 標籤則允許將時區設置保存爲一個變量,在之後的工作可以根據該變量來進行。
屬性:
value:時區的設置
var:<fmt:setTimeZone> 獨有的屬性,用於保存時區爲一個變量
scope:變量的作用範圍
舉例:
<jsp:useBeanid="now" class="java.util.Date"/>
<!--用於格式化輸出時間GMT(格林尼治標準時間) -->
<fmt:timeZonevalue="Asia/Hong_Kong">
<fmt:formatDatevalue="${now}" type="both" dateStyle="full"timeStyle="full"/>
</fmt:timeZone>
7、<fmt:formatNumber>
用於格式化數字。
屬性:
Value:格式化的數字,該數值可以是String類型或java.lang.Number類型的實例
Type:格式化的類型
Pattern:格式化模式
Var:結果保存變量
Scope:變量的作用範圍
maxIntegerDigits:指定格式化結果的最大值
minIntegerDigits:指定格式化結果的最小值
maxFractionDigits:指定格式化結果的最大值,帶小數
minFractionDigits:指定格式化結果的最小值,帶小數
註明:
<fmt:formatNumber>標籤對應java.util.NumberFormat 類, type 屬性的可能值包括 currency (貨幣)、 number (數字)和 percent (百分比)。
舉例:
<fmt:formatNumbervalue="1000.888" type="currency" var="money"/>
該結果將被保存在“ money ”變量中,將根據 Locale 環境顯示當地的貨幣格式。
<fmt:formatNumbervalue="123456.789" pattern="$#,###.##"var="number"/>
<fmt:formatNumbervalue="0.12" type="percent" var="percent"/>
8、<fmt:parseNumber>
用於解析一個數字,並將結果作爲 java.lang.Number 類的實例返回。<fmt:parseNumber> 標籤看起來和 <fmt:formatNumber>標籤的作用正好相反。
屬性:
Value:將被解析的字符串
Type:解析格式化的類型
Pattern:解析格式化模式
Var:結果保存變量,類型爲java.lang.Number
Scope:變量的作用範圍
parseLocale:以本地化的形式來解析字符串,該屬性的內容應爲 String 或 java.util.Locale 類型的實例
舉例:
<fmt:parseNumbervalue="15%" type="percent" var="num"/>
解析之後的結果爲“ 0.15 ”。
<fmt:parseNumbervalue="$123,456.79" pattern="$#,###.##"var="number"/>
9、<fmt:parseNumber>
用於解析一個數字,並將結果作爲 java.lang.Number 類的實例返回。<fmt:parseNumber> 標籤看起來和 <fmt:formatNumber>標籤的作用正好相反。
屬性:
Value:將被解析的字符串
Type:解析格式化的類型
Pattern:解析格式化模式
Var:結果保存變量,類型爲java.lang.Number
Scope:變量的作用範圍
parseLocale:以本地化的形式來解析字符串,該屬性的內容應爲 String 或 java.util.Locale 類型的實例
舉例:
<fmt:parseNumbervalue="15%" type="percent" var="num"/>
解析之後的結果爲“ 0.15 ”。
<fmt:parseNumbervalue="$123,456.79" pattern="$#,###.##"var="number"/>
10、<fmt:parseDate>
用於解析一個日期,並將結果作爲 java.lang.Date 類型的實例返回。<fmt:parseDate> 標籤看起來和<fmt:formatDate> 標籤的作用正好相反。
屬性:
Value:將被解析的字符串
Type:解析格式化的類型
Pattern:解析格式化模式
Var:結果保存變量,類型爲java.lang.Date
Scope:變量的作用範圍
parseLocale:以本地化的形式來解析字符串,該屬性的內容爲String 或 java.util.Locale 類型的實例
timeZone: 指定解析格式化日期的時區
註明:
<fmt:parseNumber>和<fmt:parseDate> 兩組標籤都實現解析字符串爲一個具體對象實例的工作,因此,這兩組解析標籤對 var 屬性的字符串參數要求非常嚴格。就 JSP 頁面的表示層前段來說,處理這種解析本不屬於份內之事,因此 <fmt:parseNumber> 和<fmt:parseDate> 兩組標籤應該儘量少用,替代工作的地方應該在服務器端表示層的後段,比如在 Servlet 中。
舉例:
<fmt:parseDatevalue="2010年06月04日 星期五 15時24分57秒"type="both" pattern="yyyy年MM月dd日 EEEE HH時mm分ss秒" var="ttt"/>
JSTL fmt:formatNumber日期、 數字、貨幣格式化
使用<fmt>標籤應先導入
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
其uri可在fmt.tld文件下
1. 日期格式化
<fmt:formatDate value=“${XXX.date}” pattern=“yyyy-MM-dd HH:mm:ss”/> |
value:要格式化的日期
pattern:日期格式化的格式
2 數字格式化
<fmt:formatNumber value="12" type="currency" pattern="$.00"/> -- $12.00 |
java格式化輸出:
DecimalFormat df = new DecimalFormat("格式"); String fmt =df.format(double); 符號 意義 0 一個數位 # 一個數位,前導零和追尾零不顯示 . 小數點分割位置 , 組分隔符的位置 - 負數前綴 % 用100乘,並顯示百分號 其他任何符號 在輸出字符串中包括指定符號 |