首页 理论教育 JSTL国际化标签库详解

JSTL国际化标签库详解

时间:2023-11-08 理论教育 版权反馈
【摘要】:在不同国家和地区,对数字和货币等的表示有所不同,在JSTL中提供了fmt标签库来处理国际化和格式的问题。通过value属性设定参数值。

JSTL国际化标签库详解

在不同国家和地区,对数字和货币等的表示有所不同,在JSTL中提供了fmt标签库来处理国际化和格式的问题。在JSP页面中使用国际化标签库的标签,需要用taglib指令指明该标签库的路径:

<%@taglib prefix="fmt"uri="http://java.sun.com/jsp/jstl/fmt"%>

1.<fmt:setLocale>

作用:设定用户的语言地区。

语法:<fmt:setLocale value="local"[variant="variant"][scope="{page|request|session|application}"]/>

属性如下。

(1)value:地区代码。其中最少要有两个字母的语言代码,如:zh、en,然后也可以再加上两个字母的国家和地区代码,如:US、TW,两者可以由"-"或"_"相连接起来,例如:zh_TW、zh_CN、en、en_US。当value为null时,则使用执行中的默认地域(locale)。

(2)varient:供货商或浏览器的规格,例如:WIN代表Windows,Mac代表Macintosh。

(3)scope:地区设定的套用范围。

2.<fmt:requestEncoding>

作用:设定字符串编码,功能和ServletRequest.setCharacterEncoding()相同。

语法:<fmt:requestEncoding[value="charseName"]/>

属性:value为字符串编码,当我们设定value为GB2312时,表示将所有传送过来的字符串皆用GB2312编码处理,如果没有设定value属性,则它将会自动去寻找合适的编码方式。

3.<fmt:message>

作用:从指定的资源中把特定关键字中的值抓取出来。

语法如下。

属性如下。

(1)key:索引

(2)bundle:使用的数据来源。

(3)var:用来储存国际化信息。

(4)scope:var变量的JSP范围。

4.<fmt:param>

作用:动态设定数据来源中抓出内容的参数。

语法如下。

(1)通过value属性设定参数值。

<fmt:param value="messageParameter"/>

(2)通过本体内容设定参数值。

<fmt:param>

本体内容

</fmt:param>

示例:Str3=today is{0,date}

其中,{0,date}表示为一个动态变量,0代表第一个动态变量;date代表该动态变量的类型。

5.<fmt:bundle>

作用:设定本体内容的数据来源。

语法:<fmt:bundle basename="basename"[prefix="prefix"]>

本体内容

</fmt:bundle>

属性如下。

(1)basename:要使用的资源名称,如果我们的properties文件为Resource,properties,那么basename的值为Resource,basename的值千万不可有任何文件类型

(2)prefix:设定前置关键字。

例如,当properties中内容如下。

6.<fmt:setBundle>

作用:设定默认的数据来源,或者也可以将它设定到属性范围中。

语法:<fmt:setBundle basename="basename"[var="varName"]

[scope="{page|request|session|application}"]/>

属性如下。(www.xing528.com)

(1)basename:要使用的资源名称。

(2)var:储存资源的名称。

(3)scope:var变量的JSP范围。

说明:basename设定要使用的数据源,和<fmt:bundle>用法相同。如果没有设定var时,那么设定好的数据来源将会变成默认的数据来源,使在同一网页或同一属性范围中<fmt:message>都可以直接默认使用此数据来源。相反,如果设定var,那么将会把此数据来源存入varName中,当<fmt:message>要使用时,必须使用bundle这个属性来指定。举例如下。

如没有设定var时,则只需写成如下。

<fmt:setBundle baseName="Resource"/>

<fmt:message key="str1"/>

一般<fmt:bundle>和<fmt:setBundle>都可以搭配<fmt:setLocale>使用,当我们有多种语言的数据来源时,可以将文件名取成Resource_zh_TW.properties、Resource_en.properties和Resouce.properties。当我们将区域设定为zh_TW,那么使用<fmt:setBundle>或<fmt:bundle>时,将会默认读取Resource_zh_TW.properties资源文件,如果<fmt:setLocale>设定为en,那么会默认抓取Resource_en.properties来使用,最后如果设定的区域没有符合的文件名,将使用Resource.properties来当做数据来源。

7.<fmt:formatNumber>

作用:依据设定的区域将数字改为适当的格式。

语法:<fmt:formatNumber value="numbericValue"[type="{number|currency|percent}"]

示例:<fmt:formatNumber value="123"type="currency"/>显示为$123。

8.<fmt:parseNumber>

作用:将字符串类型的数字,货币或百分比,都转为数字类型。

语法:<fmt:parseNumber value="numericValue"[type="{number|currency|percent}"]

[pattern="customerPattern"]/>

示例:<fmt:parseNumber value="500,800"/>显示为:500800;

<fmt:parseNumber value="$5000"type="currency"/>显示为:5000。

9.<fmt:formatDate>

作用:格式化日期和时间。

语法:<fmt:formatDate value="date"[type="{time|date|both}"]

[dateStyle="{default|short|medium|long|full}"]

[timeStyle="{default|short|medium|long|full}"]/>

示例:<jsp:useBean id="now"class="java.util.Date"/>

<fmt:formatDate value="${now}"/>

10.<fmt:parseDate>

作用:将字符串类型的时间或日期都转为日期时间类型。

语法:<fmt:parseDate value="date">

示例:<fmt:parseDate value="2003/2/17"/>

11.<fmt:setTimeZone>

作用:设定默认时区或是将时区储存至属性范围中,方便以后使用。

语法:<fmt:setTimeZone value="timeZone"[var="varName"]

[scope="{page|request|session|application}"]/>

属性value可以为EST、CST、MST和PST,默认为GMT时区。

示例:<fmt:setTimeZone value="PST"scope="session"/>

12.<fmt:timeZone>

作用:设定暂时的时区。

语法:<fmt:timeZone value="timeZone">

本体内容

</fmt:timeZone>

示例:<fmt:timeZone value="PST">

<fmt:formatDate.../>

<fmt:formatDate.../>

</fmt:timeZone>

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈