國際化核心標籤:
<fmt:setLocale> 、 <fmt:bundle> 、 <fmt:setBundle> 、 <fmt:message> 、 <fmt:param> 、 <fmt:requestEncoding> 。
格式化標籤:
<fmt:timeZone> 、 <fmt:setTimeZone> 、 <fmt:formatNumber> 、 <fmt:parseNumber> 、 <fmt:formatDate> 、 <fmt:parseDate> 。
下面只選擇其中常見的一些標籤和屬性進行介紹。
用於設置本地化環境的 <fmt:setLocale> 標籤
<fmt:setLocale> 標籤用於設置 Locale 環境。它的屬性和描述如下表所示:屬性 | 描述 |
value | Locale 環境的指定,可以是 java.util.Locale 或 String 類型的實例 |
scope | Locale 環境變量的作用範圍(可選) |
<fmt:setLocale value="zh_TW"/>
表示設置本地環境為繁體中文。
用於資源文件綁定的 <fmt:bundle> 、 <fmt:setBundle> 標籤
這兩組標籤用於資源配置文件的綁定,唯一不同的是 <fmt:bundle> 標籤將資源配置文件綁定於它標籤體中的顯示,<fmt:setBundle> 標籤則允許將資源配置文件保存為一個變量,在之後的工作可以根據該變量來進行。根據 Locale 環境的不同將查找不同後綴的資源配置文件,這點在國際化的任何技術上都是一致的,通常來說,這兩種標籤單獨使用是沒有意義的,它們都會與 I18N formatting 標籤庫中的其他標籤配合使用。它們的屬性和描述如下所示:
屬性 | 描述 |
basename | 資源配置文件的指定,只需要指定文件名而無須擴展名,二組標籤共有的屬性 |
var | <fmt:setBundle> 獨有的屬性,用於保存資源配置文件為一個變量 |
scope | 變量的作用範圍 |
<fmt:setLocale value="zh_CN"/>
<fmt:setBundle basename="applicationMessage" var="applicationBundle"/>
該示例將會查找一個名為 applicationMessage_zh_CN.properties 的資源配置文件,來作為顯示的 Resource 綁定。
用於顯示資源配置文件信息的 <fmt:message> 標籤
用於信息顯示的標籤,將顯示資源配置文件中定義的信息。它的屬性和描述如下所示:屬性 | 描述 |
key | 資源配置文件的「鍵」指定 |
bundle | 若使用 <fmt:setBundle> 保存了資源配置文件,該屬性就可以從保存的資源配置文件中進行查找 |
var | 將顯示信息保存為一個變量 |
scope | 變量的作用範圍 |
<fmt:setBundle basename="applicationMessage" var="applicationBundle"/>
<fmt:bundle basename="applicationAllMessage">
<fmt:message key="userName" />
<fmt:message key="passWord" bundle="${applicationBundle}" />
</fmt:bundle>
該示例使用了兩種資源配置文件的綁定的做法,「 applicationMessage 」資源配置文件利用 <fmt:setBundle> 標籤被賦於了變量「 applicationBundle 」,而作為 <fmt:bundle> 標籤定義的「 applicationAllMessage 」資源配置文件作用於其標籤體內的顯示。
第一個 <fmt:message> 標籤將使用「 applicationAllMessage 」資源配置文件中「鍵」為「 userName 」的信息顯示。
第二個 <fmt:message> 標籤雖然被定義在 <fmt:bundle> 標籤體內,但是它使用了 bundle 屬性,因此將指定之前由 <fmt:setBundle> 標籤保存的「 applicationMessage 」資源配置文件,該「鍵」為「 passWord 」的信息顯示。
用於參數傳遞的 <fmt:param> 標籤
<fmt:param> 標籤應該位於 <fmt:message> 標籤內,將為該消息標籤提供參數值。它只有一個屬性 value 。<fmt:param> 標籤有兩種使用版本,一種是直接將參數值寫在 value 屬性中,另一種是將參數值寫在標籤體內。
用於為請求設置字符編碼的 <fmt:requestEncoding> 標籤
<fmt:requestEncoding> 標籤用於為請求設置字符編碼。它只有一個屬性 value ,在該屬性中可以定義字符編碼。用於設定時區的 <fmt:timeZone> 、 <fmt:setTimeZone> 標籤
這兩組標籤都用於設定一個時區。唯一不同的是 <fmt:timeZone> 標籤將使得在其標籤體內的工作可以使用該時區設置, <fmt:setBundle> 標籤則允許將時區設置保存為一個變量,在之後的工作可以根據該變量來進行。它們的屬性和描述如下表所示:屬性 | 描述 |
value | 時區的設置 |
var | <fmt:setTimeZone> 獨有的屬性,用於保存時區為一個變量 |
scope | 變量的作用範圍 |
用於格式化數字的 <fmt:formatNumber> 標籤
<fmt: formatNumber > 標 簽用於格式化數字。它的屬性和描述如下表所示:屬性 | 描述 |
value | 格式化的數字,該數值可以是 String 類型或 java.lang.Number 類型的實例 |
type | 格式化的類型 |
pattern | 格式化模式 |
var | 結果保存變量 |
scope | 變量的作用範圍 |
maxIntegerDigits | 指定格式化結果的最大值 |
minIntegerDigits | 指定格式化結果的最小值 |
maxFractionDigits | 指定格式化結果的最大值,帶小數 |
minFractionDigits | 指定格式化結果的最小值,帶小數 |
下面看一個示例。
<fmt:formatNumber value="1000.888" type="currency" var="money"/>
該結果將被保存在「 money 」變量中,將根據 Locale 環境顯示當地的貨幣格式。
<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)。
用於解析數字的 <fmt:parseNumber> 標籤
<fmt:parseNumber> 標籤用於解析一個數字,並將結果作為 java.lang.Number 類的實例返回。 <fmt:parseNumber> 標籤看起來和 <fmt:formatNumber> 標籤的作用正好相反。它的屬性和描述如下表所示:
屬性 | 描述 |
value | 將被解析的字符串 |
type | 解析格式化的類型 |
pattern | 解析格式化模式 |
var | 結果保存變量,類型為 java.lang.Number |
scope | 變量的作用範圍 |
parseLocale | 以本地化的形式來解析字符串,該屬性的內容應為 String 或 java.util.Locale 類型的實例 |
<fmt:parseNumber value="15%" type="percent" var="num"/>
解析之後的結果為「 0.15 」。
用於格式化日期的 <fmt:formatDate> 標籤
<fmt:formatDate> 標籤用於格式化日期。它的屬性和描述如下表所示:屬性 | 描述 |
value | 格式化的日期,該屬性的內容應該是 java.util.Date 類型的實例 |
type | 格式化的類型 |
pattern | 格式化模式 |
var | 結果保存變量 |
scope | 變量的作用範圍 |
timeZone | 指定格式化日期的時區 |
用於解析日期的 <fmt:parseDate> 標籤
<fmt:parseDate> 標籤用於解析一個日期,並將結果作為 java.lang.Date 類型的實例返回。 <fmt:parseDate> 標籤看起來和 <fmt:formatDate> 標籤的作用正好相反。它的屬性和描述如下表所示:
屬性 | 描述 |
value | 將被解析的字符串 |
type | 解析格式化的類型 |
pattern | 解析格式化模式 |
var | 結果保存變量,類型為 java.lang.Date |
scope | 變量的作用範圍 |
parseLocale | 以本地化的形式來解析字符串,該屬性的內容為 String 或 java.util.Locale 類型的實例 |
timeZone | 指定解析格式化日期的時區 |
沒有留言:
張貼留言