國際化/格式化標籤

在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

<fmt:formatNumber value="12" type="currency" pattern=".0#"/> -- $12.0

<fmt:formatNumber value="1234567890" type="currency"/> -- $1,234,567,890.00(那個貨幣的符號和當前web服務器的 local 設定有關)

<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> -- 123,456.79

<fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> -- 123,456.7

<fmt:formatNumber value="123456.7" pattern="#,#00.00#"/> -- 123,456.70

<fmt:formatNumber value="12" type="percent" /> -- 1,200% (type 可以是currency、 number、 和percent)

 

java格式化輸出:

DecimalFormat df = new DecimalFormat("格式");

String fmt =df.format(double);

符號                  意義

0                     一個數位

#                     一個數位,前導零和追尾零不顯示

.                      小數點分割位置

,                     組分隔符的位置

-                      負數前綴

%                    100乘,並顯示百分號

其他任何符號    在輸出字符串中包括指定符號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章