Struts2入门(10):国际化(i18n)和页面切换语言实例

Struts2 国际化


Struts2 的国际化是基于Java国际化的,相比于JSP本身的国家化,Struts2 对国际化进行了进一步的封装,Struts 对于国际化(i18n)的支持是用过调用相应的预编写的资源包来实现的,主要使用于:UI标签、消息和错误,Action动作等区域;

国际化资源包

Struts2 对于JSP页面的国际化是借助<s:i18n>标签实现的,在 JSP 页面中加载相应的国际化 properties 资源包来实现的,这些资源包放置一系列的国际化语言版本,如对于一个登陆页面 login.jsp 使用以下示例资源包:
login.properties:规定默认的国际化文本的资源包;
login_zh_CN.properties :规定中文国际化文本的资源包
login_en_US.properties :规定英文环境的国际化文本的资源包
在记载这些资源时,会根据客户端的语言环境加载相应的资源包,当语言环境未知时,会加载默认资源包;

这些资源包的内容类似类似如下,一般会以 UTF-8 格式进行编码,同时使用 JDK 自带的 native2ascii 工具进行转换(尤其是携带非英文字符的资源包):
login_zh_CN.properties
loginPage = 登录页面
username = 用户名
password = 密码
login = 登录
resultPage = 登陆结果

使用 native2ascii 工具进行以上 properties 文件的转换时(如果不进行该步骤,会造成非英文文本输出的乱码),在命令行中输入(假如以上文件临时命名为"temp_login_zh_CN.properties"):

native2ascii -encoding UTF-8 temp_login_zh_CN.properties login_zh_CN.properties
转换后该文件内容如下:
loginPage = \u767b\u5f55\u9875\u9762
username = \u7528\u6237\u540d
password = \u5bc6\u7801
login = \u767b\u5f55
resultPage = \u767b\u9646\u7ed3\u679c


资源包的放置位置和加载

1)用于JSP页面的资源包
这一系列的资源包,如果是用于JSP页面国际化,一般会放置在一个文件夹中,如“viewResources”,将该文件夹放置在  classes 目录下 (如果是IDEA创建的Web应用,可以直接放置在src目录下,项目打包是会自动复制到 classes 目录下), 其加载需要在 stucts.xml 文件中使用如下示例进行加载(假设要加载的资源包位于classes/viewResources/login.properties):
<constant name="struts.custom.i18n.resources" value="viewResources.login" />

2)用于Action内部的资源包
如果是用于  Action 内部 的(如验校信息的国际化文本等),需要放置在该 Action所在的同级目录 下,同时命名的格式为"actionName_lang_locale.properties",如 “LoginAction_zh_CN.properties”,在相应的 Action 运行时,会自动加载这些资源包,不用特别声明;

除了以上的方式外,常用的还有包的资源包、全局资源包,但是一般不推荐这2种方式,因为这样会将所有的配置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值