<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    看到 I** 就應該想到知識“國際化”, I** formatting 標簽庫就是用于在 JSP 頁面中做國際化的動作。在該標簽庫中的標簽一共有 12 個,被分為了兩類,分別是:

    q         國際化核心標簽: <fmt:setLocale><fmt:bundle><fmt:setBundle><fmt:message><fmt:param><fmt:requestEncoding>

    q         格式化標簽: <fmt:timeZone><fmt:setTimeZone><fmt:formatNumber><fmt:parseNumber><fmt:formatDate><fmt:parseDate>

    下面只選擇其中常見的一些標簽和屬性進行介紹。

    9.5.1  用于設置本地化環境的 <fmt:setLocale> 標簽

    <fmt:setLocale> 標簽用于設置 Locale 環境。它的屬性和描述如表 9.17 所示:

    9.17 <fmt:setLocale> 標簽屬性和說明

    屬性

    描述

    value

    Locale 環境的指定,可以是 java.util.LocaleString 類型的實例

    scope

    Locale 環境變量的作用范圍(可選)

    下面看一個示例:

    <fmt:setLocale value="zh_TW"/>

    表示設置本地環境為繁體中文。

    9.5.2  用于資源文件綁定的 <fmt:bundle><fmt:setBundle> 標簽

    這兩組標簽用于資源配置文件的綁定,唯一不同的是 <fmt:bundle> 標簽將資源配置文件綁定于它標簽體中的顯示, <fmt:setBundle> 標簽則允許將資源配置文件保存為一個變量,在之后的工作可以根據該變量來進行。

    根據 Locale 環境的不同將查找不同后綴的資源配置文件,這點在國際化的任何技術上都是一致的,通常來說,這兩種標簽單獨使用是沒有意義的,它們都會與 I** formatting 標簽庫中的其他標簽配合使用。它們的屬性和描述如表 9.18 所示:

    9.18 <fmt:bundle><fmt:setBundle> 標簽屬性和說明

    屬性

    描述

    basename

    資源配置文件的指定,只需要指定文件名而無須擴展名,二組標簽共有的屬性

    var

    <fmt:setBundle> 獨有的屬性,用于保存資源配置文件為一個變量

    scope

    變量的作用范圍

    下面看一個示例

    <fmt:setLocale value="zh_CN"/>

    <fmt:setBundle basename="applicationMessage" var="applicationBundle"/>

    該示例將會查找一個名為 applicationMessage_zh_CN.properties 的資源配置文件,來作為顯示的 Resource 綁定。

    9.5.3  用于顯示資源配置文件信息的 <fmt:message> 標簽

    用于信息顯示的標簽,將顯示資源配置文件中定義的信息。它的屬性和描述如表 9.19 所示:

    9.19 <fmt:message> 標簽屬性和說明

    屬性

    描述

    key

    資源配置文件的“鍵”指定

    bundle

    若使用 <fmt:setBundle> 保存了資源配置文件,該屬性就可以從保存的資源配置文件中進行查找

    var

    將顯示信息保存為一個變量

    scope

    變量的作用范圍

    下面看一個示例:

    <fmt:setBundle basename="applicationMessage" var="applicationBundle"/>

    <fmt:bundle basename="applicationAllMessage">

             <fmt:message key="userName" />

             <p>

             <fmt:message key="passWord" bundle="${applicationBundle}" />

    </fmt:bundle>

    該示例使用了兩種資源配置文件的綁定的做法,“ applicationMessage ”資源配置文件利用 <fmt:setBundle> 標簽被賦于了變量“ applicationBundle ”,而作為 <fmt:bundle> 標簽定義的“ applicationAllMessage ”資源配置文件作用于其標簽體內的顯示。

    q         第一個 <fmt:message> 標簽將使用“ applicationAllMessage ”資源配置文件中“鍵”為“ userName ”的信息顯示。

    q         第二個 <fmt:message> 標簽雖然被定義在 <fmt:bundle> 標簽體內,但是它使用了 bundle 屬性,因此將指定之前由 <fmt:setBundle> 標簽保存的“ applicationMessage ”資源配置文件,該“鍵”為“ passWord ”的信息顯示。

    9.5.4  用于參數傳遞的 <fmt:param> 標簽

    <fmt:param> 標簽應該位于 <fmt:message> 標簽內,將為該消息標簽提供參數值。它只有一個屬性 value

    <fmt:param> 標簽有兩種使用版本,一種是直接將參數值寫在 value 屬性中,另一種是將參數值寫在標簽體內。

    9.5.6  用于為請求設置字符編碼的 <fmt:requestEncoding> 標簽

    <fmt:requestEncoding> 標簽用于為請求設置字符編碼。它只有一個屬性 value ,在該屬性中可以定義字符編碼。

    9.5.7  用于設定時區的 <fmt:timeZone><fmt:setTimeZone> 標簽

    這兩組標簽都用于設定一個時區。唯一不同的是 <fmt:timeZone> 標簽將使得在其標簽體內的工作可以使用該時區設置, <fmt:setBundle> 標簽則允許將時區設置保存為一個變量,在之后的工作可以根據該變量來進行。它們的屬性和描述如表 9.20 所示:

    9.20 <fmt:timeZone><fmt:setTimeZone> 標簽 屬性和說明

    屬性

    描述

    value

    時區的設置

    var

    <fmt:setTimeZone> 獨有的屬性,用于保存時區為一個變量

    scope

    變量的作用范圍

    9.5.8  用于格式化數字的 <fmt:formatNumber> 標簽

    <fmt: formatNumber > 標 簽用于格式化數字。它的屬性和描述如表 9.21 所示:

    9.21 <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:formatNumber value="1000.888" type="currency" var="money"/>

    該結果將被保存在“ money ”變量中,將根據 Locale 環境顯示當地的貨幣格式。

    9.5.9  用于解析數字的 <fmt:parseNumber> 標簽

    <fmt:parseNumber> 標簽用于解析一個數字,并將結果作為 java.lang.Number 類的實例返回。 <fmt:parseNumber> 標簽看起來和 <fmt:formatNumber> 標簽的作用正好相反。它的屬性和描述如表 9.22 所示:

    9.22 <fmt:parseNumber> 標簽屬性和說明

    屬性

    描述

    value

    將被解析的字符串

    type

    解析格式化的類型

    pattern

    解析格式化模式

    var

    結果保存變量,類型為 java.lang.Number

    scope

    變量的作用范圍

    parseLocale

    以本地化的形式來解析字符串,該屬性的內容應為 Stringjava.util.Locale 類型的實例

    下面看一個示例。

    <fmt:parseNumber value="15%" type="percent" var="num"/>

    解析之后的結果為“ 0.15 ”。

    9.5.10  用于格式化日期的 <fmt:formatDate> 標簽

    <fmt:formatDate> 標簽用于格式化日期。它的屬性和描述如表 9.23 所示:

    9.23 <fmt:formatDate> 標簽屬性和說明

    屬性

    描述

    value

    格式化的日期,該屬性的內容應該是 java.util.Date 類型的實例

    type

    格式化的類型

    pattern

    格式化模式

    var

    結果保存變量

    scope

    變量的作用范圍

    timeZone

    指定格式化日期的時區

    <fmt:formatDate> 標簽與 <fmt:timeZone><fmt:setTimeZone> 兩組標簽的關系密切。若沒有指定 timeZone屬性, 也可以通過 <fmt:timeZone><fmt:setTimeZone> 兩組標簽設定的時區來格式化最后的結果。

    9.5.11  用于解析日期的 <fmt:parseDate> 標簽

    <fmt:parseDate> 標簽用于解析一個日期,并將結果作為 java.lang.Date 類型的實例返回。 <fmt:parseDate> 標簽看起來和 <fmt:formatDate> 標簽的作用正好相反。它的屬性和描述如表 9.24 所示:

    9.24 <fmt:parseDate> 標簽屬性和說明

    屬性

    描述

    value

    將被解析的字符串

    type

    解析格式化的類型

    pattern

    解析格式化模式

    var

    結果保存變量,類型為 java.lang.Date

    scope

    變量的作用范圍

    parseLocale

    以本地化的形式來解析字符串,該屬性的內容為 Stringjava.util.Locale 類型的實例

    timeZone

    指定解析格式化日期的時區

    <fmt:parseNumber><fmt:parseDate> 兩組標簽都實現解析字符串為一個具體對象實例的工作,因此,這兩組解析標簽對 var 屬性的字符串參數要求非常嚴格。就 JSP 頁面的表示層前段來說,處理這種解析本不屬于份內之事,因此 <fmt:parseNumber><fmt:parseDate> 兩組標簽應該盡量少用,替代工作的地方應該在服務器端表示層的后段,比如在 Servlet 中。



    附:fmt例子

    <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。

    posted on 2008-09-17 09:31 seal 閱讀(235) 評論(0)  編輯  收藏 所屬分類: web
    主站蜘蛛池模板: 国产精品国产免费无码专区不卡| 国产大片免费网站不卡美女| 啊灬啊灬别停啊灬用力啊免费看| 色偷偷女男人的天堂亚洲网| 日本免费网站视频www区| 亚洲一区二区影院| 亚洲精品免费在线| 亚洲春色在线观看| 中文字幕av无码无卡免费| 亚洲伊人久久大香线焦| 永久免费的网站在线观看| 日韩亚洲不卡在线视频中文字幕在线观看| 亚洲精品视频在线免费| 亚洲精品国产精品国自产网站 | 国产色无码精品视频免费| 亚洲毛片αv无线播放一区| 久久精品免费观看国产| 国色精品va在线观看免费视频 | 免费观看黄色的网站| 亚洲13又紧又嫩又水多| 全免费一级午夜毛片| 青青草97国产精品免费观看| 色久悠悠婷婷综合在线亚洲| 久久久久久成人毛片免费看| 免费国产美女爽到喷出水来视频| 黄色免费网站在线看| 亚洲国产精品一区二区成人片国内 | 深夜特黄a级毛片免费播放| 亚洲视频在线一区二区| 桃子视频在线观看高清免费视频| 亚洲国产精品综合久久久| 国产婷婷高清在线观看免费| 黄桃AV无码免费一区二区三区 | 青青草a免费线观a| 国产亚洲美女精品久久久久| 亚洲精品午夜无码电影网| 最近高清中文字幕无吗免费看| 国产亚洲男人的天堂在线观看| 久久久久久久综合日本亚洲| 18禁无遮挡无码网站免费| 一区二区免费电影|