Struts2 国际化

国际化配置文件分为:

       全局资源文件

       包范围资源文件

       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    看结果





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值