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

Struts2 国际化

2015-08-18 20:58 274 查看
国际化配置文件分为:

全局资源文件

包范围资源文件

Action类的资源文件

一、全局资源文件:

1、放到WEB-INF/classes目录下。

资源文件的命名规则: 文件名前缀.语言种类.properties

例如:

中文:

resource_zh_CN.properties

内容:

username=用户名

password=密码

英文:

resource_en_US.properties

内容:

username=username_en

password=password_en

2、在 struts.xml 中:

<struts>
<constant name="struts.custom.i18n.resources" value="itcast"></constant>
<package name="validate" namespace="/validate" extends="struts-default">
<action name="i18nAction" class="cn.google.action.I18nAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>


3、在 I18nAction.java 中:

public class I18nAction extends ActionSupport implements Serializable {
public String execute(){
//取出资源文件中的welcome的值
String value = getText("username");
//封装到请求范围中
ActionContext.getContext().put("message", value);
return SUCCESS;
}
}
4、在 i18n.jsp 中:

<body>
<s:text name="welcome">
</s:text>
</body>
---------------------------------------------------------------------------------------

国际化——输出带占位符的国际化信息

1、资源文件中的内容如下: resource_zh_CN.properties:

welcome={0},欢迎来到中国{1}

2、利用页面传递参数:在 i18n.jsp 中

<body>
<s:text name="welcome">
<s:param>克林顿</s:param>
<s:param>学习</s:param>
</s:text>
</body>
3、结果

访问:localhost:8080/项目名/i18n.jsp,结果:welcome=克林顿,欢迎来到中国学习。

4、或者,通过Action类传递参数:在 I18nAction 中:

public class I18nAction extends ActionSupport implements Serializable {
public String execute(){
//取出资源文件中的welcome的值
String value = getText("welcome", new  String[]("雷锋","学习"));
//封装到请求范围中
ActionContext.getContext().put("message", value);
return SUCCESS;
}
}
5、结果

访问:localhost:8080/项目名/i18n.jsp,结果:welcome=雷锋,欢迎来到中国学习。

---------------------------------------------------------------------------------------

二、包范围资源文件

包范围资源文件:服务于Java类中的包下的动作类的。

取名规则:package_语言_国家.properties

示例:

在 src 中建立 package_CN.properties:

welcome={0},欢迎来到北京{1},package

在 src 中建立 package_US.properties:

welcome=Welcome to Beijing,package

访问:localhost:8080/项目名/validate/i18nAction //结果显示从包范文中取值。

*搜索顺序:

包 > 全局

---------------------------------------------------------------------------------------

三、Action 范围资源文件

动作类的资源文件:放到与动作类相同的包中

取名:动作类名_语言_国家.properties

示例:

在 I18nAction 同包中建立 I18nAction_zh_CN.properties:

welcome={0},欢迎来到北京{1}, action

在 src 中建立 package_US.properties:

welcome=Welcome to Beijing, action

访问:localhost:8080/项目名/validate/i18n.jsp //结果显示从全局范围中取值。

访问:localhost:8080/项目名/validate/i18nAction //结果显示从包范围中取值。

---------------------------------------------------------------------------------------

如果同时配置三个范围的国际化,struts2 提供个 i18n 标签来便捷的访问对应资源:

示例:在 i18n1.jsp 中:

<body>
<s:i18n name="resource">
<s:text name="welcome">
<s:param>yr</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
<s:i18n name="cn/demo/action/package">
<s:text name="welcome">
<s:param>wxy</s:param>
<s:param>find boy friend</s:param>
</s:text>
</s:i18n>
</body>
访问:localhost:8080/项目名/validate/i18n.jsp 看结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: