Struts 2国际化

第一部分

全局属性文件的实现,及使用指定的属性文件。。。简要说明下包下的属性文件(适用于较大项目的分组开发)
属性文件共分四种:指定的资源文件(i18n),Action范围的资源文件 ,包范围内的资源文件 , 全局资源文件。
优先级从高到底:指定的资源文件(i18n) > Action范围的资源文件 > 包范围内的资源文件 > 全局资源文件,也就是说获取属性值时系统如果没有指定的资源文件,则会先从action范围内的资源文件找,如果找不到对应的属性值再到包范围内找,以此类推。一般系统只需要全局资源文件加指定资源文件的组合就可以了,如果是比较大的系统,需要分组开发,则可以考虑引入包资源文件,对于action资源文件基本用不着,首先看下全局资源文件的实现样例:

1,新建动态网站



2,导入struts2功能(五个包,web.xml加入struts2转发过滤器,新建struts.xml,参照文章<sturts2初体验>)



3,国际化属性文件也和struts.xml一样放在src目录下,以后会被build到web-inf/classes目录下。文件名为struts.properties,内容为struts.custom.i18n.resources=filename。



4,在和struts.properties同一目录下新建全局属性文件 filename_zh_CN.properties和filename_en_US.properties,并分别加入<hello=你好 李婷婷!>和<hello=Hello LiTingTing!>



在此想和大家分享一个不错的编写properties文件的Eclipse插件(plugin),有了它我们在编辑一些简体中文、繁体中文等Unicode文本时,就不必再使用native2ascii编码了。您可以通过Eclipse中的软件升级(Software Update)安装此插件,步骤如下:
1、展开Eclipse的Help菜单,将鼠标移到Software Update子项,在出现的子菜单中点击Find and Install;
2、在Install/Update对话框中选择Search for new features to install,点击Next;
3、在Install对话框中点击New Remote Site;
4、在New Update Site对话框的Name填入“PropEdit”或其它任意非空字符串,在URL中填入http://propedit.sourceforge.jp/eclipse/updates/;
5、在Site to include to search列表中,除上一步加入的site外的其它选项去掉,点击Finsih;
、在弹出的Updates对话框中的Select the features to install列表中将所有结尾为“3.1.x”的选项去掉(适用于Eclipse 3.2版本的朋友);
6、点击Finish关闭对话框;
注:struts.xml用于应用程序相关的配置 ,struts.properties用于Struts 2.0的运行时(Runtime)的配置



5,写一个简单的页面测试调用以上属性文件中的值:

Xml代码
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<s:text name="hello"></s:text><br>
<s:property value="%{getText('hello')}"/>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<s:text name="hello"></s:text><br>
<s:property value="%{getText('hello')}"/>
</body>
</html>这两种显示方式尤其要记住<s:property value="%{getText('hello')}"/>这种方式,可以动态地给页面控件属性赋值

运行以上工程可以在页面见到属性关键字hello对应的属性值(你好 李婷婷! 或 hello LiTingTing!),成功。



6,制定属性文件的情况:

Xml代码
<s:i18n name="filename">
<s:property value="%{getText('hello')}"/>
</s:i18n>

<s:i18n name="filename">
<s:property value="%{getText('hello')}"/>
</s:i18n>

其中的name属性可以是全局属性文件中的filename,也可以是包属性文件中的package,也可以是Action属性中的Action名。



7,包资源文件的实现:
只要在包下新建如下两个文件:package_zh_CN.properties和package_en_US.properties并填入属性
分别加入:<hello=你好 李婷婷!>,<hello=Hello LiTingTing!> 需要注意 这两个文件都必须以package作为文件名。然后在其包下面的页面或者action调用属性值的时候就会在这两个属性文件里找,如果找不到再往上一层全局属性文件里找。



第二部分

带有参数的属性文件的实现
其实很简单,首先在属性文件里以特定的格式填写,如:
hello=你好,{0},{1}
然后在action里做如下操作:
String message=getText("hello",new String[]{"李婷婷","周磊"});
则message的信息为<你好, 李婷婷,周磊>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值