Struts2_国际化-Action范围资源文件、jsp中直接访问某个资源文件

来源:互联网 发布:淘宝首页图片大小 编辑:程序博客网 时间:2024/06/14 15:25

国际化-Action范围资源文件:

我们也可以为某个action单独指定资源文件,方法如下:在Action类所在的路径,放置ActionClassName_language_country.properties资源文件源文件,ActionClassName为action类的简单名称当查找指定key的消息时,系统会先从ActionClassName_language_country.properties资源文件查找,如果没有找到对应的key,然后没着当前包往上查找基本名为package的的资源文件,一直找到最顶层包。如果还没有找到对应的key,最后会从常量struts.customi18n.resources指定的资源文件中寻找。

国际化-jsp中直接访问某个资源文件:

struts2为我们提供了<s:i18n>标签,使用<s:i18n>标签我们可以在类路径下直接从某个资源文件中获取国际化数据,而无需任何配置:<!-- 访问全局范围国际化资源 --><s:i18n name="itcast"><s:text name="welcome"><s:param>小明</s:param><s:param>学习</s:param></s:text></s:i18n>itcast为类路径下资源文件的基本名。如果要访问的资源文件在类路径的某个包下,可以这样访问:<!-- 访问包范围国际化资源 --><s:i18n name="cn/itcast/action/package"><s:text name="welcome"><s:param>小明</s:param><s:param>学习</s:param></s:text></s:i18n><br/>上面访问cn.itcast.action包下基本名为package的资源文件。如果要访问的资源文件在类路径的某个Action,可以这样访问:<!-- 访问Action范围国际化资源 --><s:i18n name="cn/itcast/action/PersonManageAction"><s:text name="welcome"><s:param>小明</s:param><s:param>学习</s:param></s:text></s:i18n>上面访问cn/itcast/action/PersonManageAction下基本名为PersonManageAction的资源文件。

在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时候我们可以针对不同模块,使用包范围来组织国际化文件。方法如下:在java的包下放置package_language_county.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找到key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找welcome=package:{0},welcom to bdqn{1}welcome=package:{0},欢迎来到北大青鸟{1}/WEB-INF/page/message.jsppackage cn.itcast.action;import java.util.ArrayList;import java.util.List;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class PersonManageAction extends ActionSupport {@Overridepublic String execute() throws Exception {// List s = new ArrayList();// s.add("小明");// s.add("你好");// ActionContext.getContext().put("message", this.getText("welcome", s));ActionContext.getContext().put("message", this.getText("welcome", new String[] { "小明", "学习" }));return "message";}}<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>结果${message }

中国万岁



阅读全文
0 0
原创粉丝点击