jstl fmt中的关于国际化和取资源文件的文章
2012-07-02 19:16
218 查看
看到 I18N 就应该想到知识“国际化”,
I18N 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> 标签用于设置 Locale
环境。它的属性和描述如表 9.17 所示:
表 9.17 <fmt:setLocale>
标签属性和说明
下面看一个示例:
<fmt:setLocale value="zh_TW"/>
表示设置本地环境为繁体中文。
9.5.2
这两组标签用于资源配置文件的绑定,唯一不同的是
<fmt:bundle> 标签将资源配置文件绑定于它标签体中的显示,
<fmt:setBundle>
标签则允许将资源配置文件保存为一个变量,在之后的工作可以根据该变量来进行。
根据 Locale 环境的不同将查找不同后缀的资源配置文件,这点在国际化的任何技术上都是一致的,通常来说,这两种标签单独使用是没有意义的,它们都会与
I18N formatting 标签库中的其他标签配合使用。它们的属性和描述如表
9.18 所示:
表 9.18 <fmt:bundle>
、 <fmt:setBundle> 标签属性和说明
下面看一个示例
<fmt:setLocale value="zh_CN"/>
<fmt:setBundle basename="applicationMessage" var="applicationBundle"/>
该示例将会查找一个名为 applicationMessage_zh_CN.properties
的资源配置文件,来作为显示的 Resource 绑定。
9.5.3
用于信息显示的标签,将显示资源配置文件中定义的信息。它的属性和描述如表 9.19
所示:
表 9.19 <fmt:message>
标签属性和说明
下面看一个示例:
<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:message> 标签内,将为该消息标签提供参数值。它只有一个属性
value 。
<fmt:param> 标签有两种使用版本,一种是直接将参数值写在
value 属性中,另一种是将参数值写在标签体内。
9.5.6
<fmt:requestEncoding> 标签用于为请求设置字符编码。它只有一个属性
value ,在该属性中可以定义字符编码。
9.5.7
这两组标签都用于设定一个时区。唯一不同的是 <fmt:timeZone>
标签将使得在其标签体内的工作可以使用该时区设置, <fmt:setBundle> 标签则允许将时区设置保存为一个变量,在之后的工作可以根据该变量来进行。它们的属性和描述如表
9.20 所示:
表 9.20 <fmt:timeZone>
、 <fmt:setTimeZone> 标签
属性和说明
9.5.8
<fmt: formatNumber >
标 签用于格式化数字。它的属性和描述如表 9.21 所示:
表 9.21 <fmt:formatNumber>
标签属性和说明
<fmt:formatNumber> 标签实际是对应 java.util.NumberFormat
类, type 属性的可能值包括 currency
(货币)、 number (数字)和 percent
(百分比)。
下面看一个示例。
<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)。
I18N 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.Locale 或 String 类型的实例 |
scope | Locale 环境变量的作用范围(可选) |
<fmt:setLocale value="zh_TW"/>
表示设置本地环境为繁体中文。
9.5.2
用于资源文件绑定的
<fmt:bundle>
、 <fmt:setBundle>
标签
这两组标签用于资源配置文件的绑定,唯一不同的是<fmt:bundle> 标签将资源配置文件绑定于它标签体中的显示,
<fmt:setBundle>
标签则允许将资源配置文件保存为一个变量,在之后的工作可以根据该变量来进行。
根据 Locale 环境的不同将查找不同后缀的资源配置文件,这点在国际化的任何技术上都是一致的,通常来说,这两种标签单独使用是没有意义的,它们都会与
I18N 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 | 指定格式化结果的最小值,带小数 |
类, type 属性的可能值包括 currency
(货币)、 number (数字)和 percent
(百分比)。
下面看一个示例。
<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)。
相关文章推荐
- jstl fmt标签的关于国际化和取资源文件的说明
- 关于JSTL标签库fmt的资源国际化
- 关于用<fmt:message>标签读取springmvc配置的国际化资源文件显示为???key???的错误原因
- Struts2的i18n国际化-关于默认资源文件
- struts2-19配置国际化全局资源文件、输出国际化信息
- 关于项目打成jar包文件资源找不到的同学们你们有救了!!!
- 第二十六章 配置包范围国际化资源文件
- struts2 国际化资源文件测试
- 基于ASM开发的一个关于class文件加密程序,可对整个jar进行加密且不影响资源文件
- 【SSH】加载国际化资源文件
- java国际化资源文件使用
- struts中国际化之读取资源文件
- 关于android资源文件那些事。
- 3.10.1: Struts2的国际化---Struts2中加载全局资源文件
- Struts2.x 学习笔记 之 通过超链接动态加载国际化资源文件
- 关于在资源中的QML文件中访问本地Image文件(Qt的Bug)
- 关于java Io流的操作,复制(多个文件)、删除、剪切、下载网络资源
- IntelliJ & Spring 设置使用国际化资源文件
- 关于VC/MFC不导入资源文件 动态加载GIF动画文件
- 关于Spring中加载xsd文件出现故障的文章总结