本篇我們繼續討論JSTL。I18N標籤庫一般用於編寫國際化的應用程式。它分為兩部分,國際化和日期、時間、數位格式化。在jsp頁面要使用格式化標籤,必須要使用<%@taglib%>指令,指定格式化標籤。代碼如下:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
國際化標籤
國際化標籤包括<fmt:setLocale>,<fmt:bundle>,<fmt:message>,<fmt:param>和<fmt:requestEncoding>。
<fmt:setLocale>標籤
它用於設定使用者的本地語言環境,並將指定的locae儲存到javax.servlet.jsp.jstl.fmt.locale組態變數中。其文法格式如下:
<fmt:setLocale value="locale" [variant="variant"] [scope="{page|request|session|application}"] />
value指定語言和地區代碼,variant指定供應商或瀏覽器代碼,如WIN表示windows。如果value是null或空,則使用預設locale。
<fmt:bundle>標籤
它用於建立它的標籤體使用的I18N本機內容環境。其文法格式如下所示:
<fmt:bundle basename="basename" [prefix="prefix"]>本體內容</fmt:bundle>
basename表示資源套件的基名,prefix指定在嵌套的<fmt:message>標籤的訊息鍵前面要添加的首碼。
<fmt:setBundle>標籤
該標籤用於建立一個I18N本機內容環境,將它儲存到javax.servlet.jsp.jstl.localizationContext組態變數中。其文法格式如下:
<fmt:setBundle basename="basename" [var="varName"] [scope="{scope|request|session|application}"] />
var表示被到匯出的儲存了I18N本機內容的範圍變數的名字。
<fmt:message>標籤
該標籤用於從資源套件中尋找一個指定鍵的值,用於顯示本地化的訊息。有三種格式的文法,文法格式如下:
1)文法格式1,沒有標籤體。
<fmt:message key="messagekey" [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"] />
2)文法格式2,有標籤體,在標籤體中指定訊息參數
<fmt:message key="messagekey" [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"] > <fmt:param> subtags</fmt:message>
3)有標籤體,在標籤體中指定鍵和可選的訊息參數。
<fmt:message [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"] > key optional<fmt:param> subtags</fmt:message>
key表示要尋找的訊息的鍵。bundle表示使用的資源套件。如果key為null,將產生?????形式的錯誤資訊。如果沒有找到資源套件,將產生???<key>???形式的錯誤。
<fmt:param>標籤
該標籤提供一個參數,用於在<fmt:message>中做參數置換。它有兩個文法格式。如下:
1)文法格式1,通過value屬性指定參數值。
<fmt:param value="messagevalue" />
2)文法格式2,通過標籤體指定參數值
<fmt:param>內容</fmt:param>
<fmt:requestEncoding>
該標籤體用於佈建要求的字元編碼,文法格式如下:
<fmt:requestEncoding [value="charsetName"] />
格式化標籤
<fmt:formatNumber>標籤
該標籤會根據地區或定製的方式將數字格式化為數字、貨幣或百分比。文法分為兩種,沒有本體內容,使用value屬性來指定要格式化的數字,有本體內容,使用本體內容來指定要格式化的數字。文法格式如下:
<fmt:formatNumber value="number" [type={number|currency|percent}][pattern="pattern"][currencyCode="currencyCode"][groupingUsed="{true|false}"][maxInterDigits="maxIntegerDigits"][minIntegerDigits="minIntegerDigits"][maxFractionDigits="maxFractionDigits"][minFractionDigits="minFractionDigits"][var="varName"][scope="page|request|session|application"] />
<fmt:parseNumber>標籤
該標籤用來將字串類型的數字、貨幣或百分比轉換成數字類型。和<fmt:formatNumber>標籤的作用證號相反。文法分為兩種,沒有本體內容,使用value屬性來制定要轉換成數位字串;無本體內容,使用本體內容來指定轉換成數位字串。其文法格式如下:
<fmt:parseNumber value="number" [type={number|currency|percent}][pattern="pattern"][parseLocale="parseLocale"][groupingUsed="{true|false}"][integerOnly="{false|true}"][var="varName"][scope="page|request|session|application"] />
<fmt:formatDate>標籤
該標籤會根據地區或定製的方式將日期或時間格式化。其文法格式如下:
<fmt:formatDate value="number" [type={time|date|both}][pattern="pattern"][dateStyle="{default|short|medium|long|full}"][timeStyle="{default|short|medium|long|full}"][timeZone="timeZone"][var="varName"][scope="page|request|session|application"] />
<fmt:parseDate>標籤
該標籤用來將字串類型的時間或日期轉換為日期時間類型。與<fmt:formatDate>標籤作用正好相反。也分為有本體內容或無本體內容兩種。其文法格式如下:
<fmt:parseDate value="number" [type={time|date|both}][pattern="pattern"][dateStyle="{default|short|medium|long|full}"][timeStyle="{default|short|medium|long|full}"][timeZone="timeZone"][var="varName"][scope="page|request|session|application"] />
<fmt:setTimeZone>標籤
該標籤用來設定預設時區或將時區儲存到屬性範圍中。其文法格式如下:
<fmt:setTimeZone value="timeZone" [var="varName" [scope="{page|request|session|application}"]]/>
<fmt:timeZone>標籤
該標籤用來暫時設定時區。其文法格式如下。
<fmt:timeZone value="timeZone">本體內容</fmt:timeZone>
轉載請註明出處:http://blog.csdn.net/iAm333