Struts从零开始四、Struts中的国际化
一 概念
I N作为 国际化 的简称 其来源是明文单词 internationlization 的首末字符 i 和 n 之间的字符数为 随着全球经济的遗体化为一种主流的趋势 软件开发者应该开发出支持多国语言 国家化的web应用程序吧 也就是一个web应用程序在运行时能够根据客户端请求所来自的国家和语言的不同显示不同的用户界面 这样 当需要在应用程序中添加对一种新的语言的支持时 不需要对已有的软件返工 无需修改应用程序的程序代码
二 Struts对国家化的支持
在Struts框架中进行应用程序的国际化 支持重点在于应用程序的文本和图像表示 最重要的工作就是准备Resurce Bundle 资源包 事实上 准备资源包的过程 就是把对应不同语言的用户所涉及的文本和如亏图片保存在多个文本文件中 客户端根据不同的环境需要进行更换 这些文件被称为 属性文件 所有属性文件合在一起被称为资源包(Resource Bundle)
Struts建立于Java平台之上 很容易建立国际化和本地化的应用程序 在这里你要熟悉的关键概念是
) Locale – 基础的支持国际化的java类是java util Locale 每个Locale代表一个特别的国家和语言的选择(加上一个可选的语言变量) 以及一套格式假定 例如数字和日期等等
) ResourceBundle – java util ResourceBundle类提供支持多种语言消息的基本工具 查看文档中关于ResourceBundle类以及你的JDK版本森知的文档此橡消包中关于国际化的更多内容
) PropertyResourceBundle – 一个ResourceBundle类的标准实现允许你使用与初始化properties文件同样的键/值的语法来定义资源 这对于使用为用于一个web应用程序的消息准备资源包是非常方便的 因为这写消息通常都是面向文本的
) MessageFormat – java text MessageFormat类允许你使用运行时的指定的参数替换一个消息字符串中的一部分(在这种情况下 是一个从一个资源包得到的消息) 这在你创建一个句子的场合中是有用的 但是词会以不同的语言安照不同的顺序出现 消息中的占位符 字符串{ }用第一个运行时参数替换 { }用第二个运行时参数替换 以此类推
) MessageResources – Struts的类 apache struts util MessageResources使你能够将一套资源包视做一个数据库 并且允许你为一个特定的Locale(通常是与当前用户相对应)请求一个特定的消息 而不是为服务器运行在其中的缺省的Locale请求消息
三 示例
我们还在前面的登录实例进行加工
在默认的applicationResources properties文件中添加相应的消息文本
label username=username
label password=password
button submit=submit
button reset=reset
创建临时中文资源文件 applicationResources_temp propertyies
label username=用户名
label password=密码
button submit=确定
button reset=重置
对临时资源文件进行编码转换
在JDK中提供了native ascii命令 它能够实现字符编码转换 在DOS下执行以下命令 将生成按GBK以编码的中文资源文件 applicationResources_zh_CN properties
native ascii –encoding gbk applicationResources_temp properties
applicationResources_zh_CN properties
生成的applicationResources_zh_CN properties的内容如下
label username= u u u d
label password= u bc u
button submit= u e u b a
button reset= u cd u f e
当web用户的Locale为中文时 Struts框架将自动选择来自applicationResources_zh_CN properties文件的消息文本
创建英文的资源文件
label username=username
label password=password
button submit=submit
button reset=reset
完成以上几个步骤后 在web 应用程序的根目录 WEB INF目录 classes目录下应该有了三个资源文件
默认资源文件 applicationResource properties
中文资源文件 applicationResource_zh_CN properties
英文资源文件 applicationResource_en properties
创建struts的Resource Bundle
Struts配置文件中的元素定义了一个Resource Bundle Resource Bundle的持久化消息文本存储在资源文件中 其扩展名为 properties 里面存放的都是 键/值
在struts config xml中对Resource Bundle的配置代码
表示默认的资源文件应该是applicationResources properties 存放在应用程序的根目录 WEB INF目录 classes目录下 如果应用程序需要支持中文用户 要在相同目录下创建一个包涵中文消息的资源文件 文件名必须为applicationResource_zh_CN properties
修改login jsp页面
<:form action= login do method= post >
<bean:message key= label username />
<:text property= username /><:errors property= username />
<br />
<bean:message key= label password />
<:text property= userpass /><:errors property= userpass />
<br>
<input type= submit name= Submit value= <bean:message key= button submit /> >
<input type= reset value= <bean:message key= button reset /> >
</:form>
<bean:message/>:用于访问web应用资源的bean标签 显示Resource Boundle中的内容
运行程序
)如果你的浏览器默认设置为中文 你键入地址 将看到的页面如下
)把你的浏览器的设置为英文 然后刷新页面 如下图
lishixinzhi/Article/program/Java/ky/201311/28127