Struts2 国际化
2015-08-18 20:58
274 查看
国际化配置文件分为:
全局资源文件
包范围资源文件
Action类的资源文件
资源文件的命名规则: 文件名前缀.语言种类.properties
例如:
中文:
resource_zh_CN.properties
内容:
username=用户名
password=密码
英文:
resource_en_US.properties
内容:
username=username_en
password=password_en
2、在 struts.xml 中:
3、在 I18nAction.java 中:
welcome={0},欢迎来到中国{1}
2、利用页面传递参数:在 i18n.jsp 中
访问:localhost:8080/项目名/i18n.jsp,结果:welcome=克林顿,欢迎来到中国学习。
4、或者,通过Action类传递参数:在 I18nAction 中:
访问:localhost:8080/项目名/i18n.jsp,结果:welcome=雷锋,欢迎来到中国学习。
---------------------------------------------------------------------------------------
取名规则:package_语言_国家.properties
示例:
在 src 中建立 package_CN.properties:
welcome={0},欢迎来到北京{1},package
在 src 中建立 package_US.properties:
welcome=Welcome to Beijing,package
访问:localhost:8080/项目名/validate/i18nAction //结果显示从包范文中取值。
*搜索顺序:
包 > 全局
---------------------------------------------------------------------------------------
取名:动作类名_语言_国家.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 //结果显示从包范围中取值。
---------------------------------------------------------------------------------------
全局资源文件
包范围资源文件
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 看结果
相关文章推荐
- 1
- Spring 入门教程(三) 注入和自动装配
- 浅谈Java工厂模式
- java贪吃蛇
- Java出局游戏
- Java反射
- [Java]LeetCode57 Insert Interval
- java 引用类型 和 基本类型的理解
- Java注解
- Java中我常使用的ArrayList方法
- Java深度历险(五)Java泛型
- Java深度历险(四)Java垃圾回收机制与引用类型
- Java基础---包.内部类
- Java深度历险(二)Java类的加载、链接和初始化
- Java基础---static关键字
- Java删除ArrayList中的重复元素的2种方法
- Java深度历险(一)Java字节代码的操纵
- Java中的八种数据类型
- 初识Java注解
- javadoc错误: 编码gbk的不可映射字符