JSTL標簽提供了對國際化(I18N)的支持,它可以根據發出請求的客戶端地域的不同來顯示不同的語言。同時還提供了格式化數據和日期的方法。實現這些功能需要I18N格式標簽庫(I18N-capable formation tags liberary)。引入該標簽庫的方法為:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
I18N格式標簽庫提供了11個標簽,這些 標簽從功能上可以劃分為3類如下:
(1)數字日期格式化。formatNumber標簽、formatData標簽、parseNumber標簽、parseDate標簽、timeZone標簽、setTimeZone標簽。
(2)讀取消息資源。bundle標簽、message標簽、setBundle標簽。
(3)國際化。setlocale標簽、requestEncoding標簽。
接下將詳細介紹這些標簽的功能和使用方式。
<fmt:formatNumber>標簽
根據區域或定制的方式將數字格式化成數字、貨幣或百分比
<fmt:formatNumber value="number" [type={number|currency|percent|}] [pattern="pattern"] [currencyCode="currencyCode"] [currentSymbol="currentSymbol"] [groupingUsec="{true|false}"] [maxIntergerDigits="maxIntergerDigits"] [minIntergerDigits="minIntergerDigits"] [maxFractionDigits="maxFractionDigits"] [minFractionDigits="minFractionDigits"] [var="varname"] [scope="page|request|session|application"] />
<%@page language="java" contentType="text/html;charset=utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <!DOCTYPE html> <html> <head> <title>FormatNumber標簽使用</title> </head> <body> <h1>FormatNumber標簽使用</h1> <fmt:setLocale value="fr_fr" /> France:<fmt:formatNumber value="123456789.012"/> <fmt:setLocale value="zh_cn" /> China:<fmt:formatNumber value="123456789.012"/> <fmt:setLocale value="de_de" /> Germany:<fmt:formatNumber value="123456789.012"/> </body> </html>
<fmt:parseNumber />標簽
用來將字符串類型的數字、貨幣、或百分比轉換成數字類型
<fmt:parseNumber value="numberString" [type={number|currency|percent|}] [pattern="pattern"] [parseLocale="parseLocale"] [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:parseDate value="date" [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>
<fmt:setLocale />標簽
用來設定用戶的區域語言
復制代碼 代碼如下:
<fmt:setLocale value="locale" [variant="variant"] [scope="{page|request|session|application}"] />
<fmt:requestEncoding value="charsetName" />
<fmt:setBundle />標簽
用來設定默認的數據來源,也可以將其存儲到一定范圍中,供需要時使用
復制代碼 代碼如下:
<fmt:setBundle basename="basename" [var="varname"] [scope="{page|request|session|application}"] />
<fmt:message />標簽
用來從指定的資源文件中通過索引取得值
復制代碼 代碼如下:
<fmt:message key="messageKey" [bundle="resourceBundle"] [var="varname"] [scope="{page|request|session|application}"] />
<fmt:param />標簽
用來傳遞參數(在從資源文件中取得信息時,可能需要動態設定參數的情況下)
<fmt:param value="messageParameter" />
沒有本體內容
<fmt:param value="messageParameter" >有本體內容 參數 </fmt:param>
<fmt:bundle />標簽
用來設定數據來源
<fmt:bundle basename="basename" [prefix="prefix"] > 本體內容<fmt:message> </fmt:bundle>