您的位置:首页 > 编程语言 > Java开发

第四节:struts2-国际化的应用

2014-01-11 00:48 295 查看
相关jar包及dome下载地址:http://download.csdn.net/detail/a85820069/6835885

前期准备:

1.选择struts2版本struts-2.3.15.3。

2.Struts2 的web应用默认需要JAVA5运行环境,需要Web容器支持Servlet API 2.4 和 JSP API 2.0。

3.导入包

commons-fileupload-1.3.jar

commons-io-2.0.1.jar

commons-lang3-3.1.jar

freemarker-2.3.19.jar

javassist-3.11.0.GA.jar

ognl-3.0.6.jar

struts2-core-2.3.15.3.jar

xwork-core-2.3.15.3.jar

说明

程序界面中需要输出国际化信息的地方,我们不要在页面中直接输出信息,而是输出一个KEY值,

该KEY值在不同语言环境下对应不同的字符串(通过properties文件配置)。

当程序需要显示时,程序将根据不同的语言环境(语言类型信息来自于系统和浏览器)和KEY值,

查找配置文件中对应的值信息,并将值信息展现于KEY所在位置。

开始

一,为各种语言编写配置文件

1.每种语言分别使用一个文件;

2.文件命名规则beasname_语言代码_国家代码(大写).properties;

3.将配置文件添加到应用中并且加载到struts2中;

3.1,将配置文件放在classes文件夹下,可以放到更深的包中。

3.2,在struts.properties文件中加入以下内容

struts.custom.i18n.resources=messageResouce

这里的messageResouce指的是命名规则中beasname的内容。

中文配置文件:messageResouce_zh_CN.properties

loginPage=登陆页面
errorPage=错误页面
succPage=成功页面
failTip=对不起,您不能登录!
succTip=欢迎,${0},您已经登录!
viewLink=查看作者李刚已出版的图书
bookPageTitle=作者李刚已出版的图书
bookName=书名:
user=用户名
pass=密码
login=登陆
注意:properties文件中无法编辑中文,有两种解决方法:

1.MyEclipse工具导入properties edit插件。(导入方法参考http://blog.csdn.net/a85820069/article/details/18101159)

2.先用UE编辑器编写中文文档,之后通过在cmd命令窗口中使用native2ascii命令处理该文件,使用新产生的文件进行开发。

例如用UE编写文件:messageResouce.properties后,使用如下命令产生messageResouce_zh_CN.properties文件。将新产生的文件放到项目中。

native2ascii messageResouce.properties messageResouce_zh_CN.properties

英文配置文件:messageResouce_en_US.properties

loginPage=Login Page1
errorPage=Error Page
succPage=Welcom Page
failTip=Sorry,You can't log in!
succTip=welcom,,${0},you has logged in!
viewLink=View liGang\'s Books
bookPageTitle=LiGang\'s Books
bookName=BookName:
user=User Name
pass=User Pass
login=Login


二,在页面中使用

使用方式有两种,均通过struts2标签实现。(页面中导入:<%@ taglib prefix="s" uri="/struts-tags" %>)

messageKey:指的是properties文件中的K值。

1,<s:text name="messageKey"/> 独立的标签,直接将值展现到页面上。

例如:

<s:text name="user"></s:text>

页面效果

在页面上展现“用户”两个汉字。

2,<s:property value="%{getText("messageKey")}"/> 与其他标签合作的方式,将值添加到其他标签中展现。

例如:

<s:textfield name="username" label="%{getText('user')}"></s:textfield>

页面效果:

在页面上展现textfield标签效果,且label字段由国际化的值所替代。

测试

IE浏览器,修改系统的所属区域然后刷新页面,在不同区域中将展现不同配置文件中的内容。

火狐浏览器,不仅修改系统的所属区域还要修改火狐浏览器的配置“语言”后刷新页面,在不同区域中将展现不同配置文件中的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: