悟生慧

 

struts国际化

http://www.itjianghu.net/120107/40915516678240795.htm

说明:在Spring MVC中开始比较全面的支持注解,通过注解可以大大简化J2EE应用开发的配置、精简开发人员的工作量从而提高开发效率。

国际化
全局范围/包范围/


新建项目
导入Struts的Jar文件放到WebRoot-WEB-INF的lib目录下
struts.xml文件
第三部在web.xml文件中配置启动项

开始新建资源文件
src下
如果开发工具不支持把中文转换成unicode编码,应该使用JDK提供的native2ascii命令把文件转换为unicode编码

当准备好资源文件之后,我们可以在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件
如下:<constant name="struts.custom.i18n.resources" value="itcast"/> itcast为资源文件的基本名

在JSP中使用
<s:text name=""/>标签输出国际化信息  name为资源文件中的key
在Action类中,可以继承ActionSupport,使用getText()方法得到国际化信息该方法的第一个参数用于指定资源文中的KEy

Action类

package cn.itcast.action;

public class PersonManagerAction extends ActionSupport{
      public String execute() throws Exception{
              //this.getText("welcome");资源文件的属性
      ActionContext.getContext().put("message",this.getText("welcome"));
              return "message";//返回message这个视图
}

}

默认执行Action的execute()方法


===============================================
输出带占位符的国际化信息
资源文件的Value 中{0},欢迎来到传智播客{1}
<s:text name="welcome">
  <s:param>liming</s:param>
  <s:param>study</s:param>
</s:text>

在Action中如何传入占位符


 public String execute() throws Exception{          
      ActionContext.getContext().put("message",this.getText("welcome",new String[]{"liming","study"}));
              return "message";//返回message这个视图

=======================================================================================================

国际化-包范围资源文件
针对不同模块,使用包范围来组织国际化文件
方法如下:
在java的包下设置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源
当查找指定Key消息是,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.coustom.i18n.resources指定的资源文件中寻找
优先在包下找资源文件 找不到才会去上一层找

-=========================================================

国际化-Action范围资源文件
方法如下
在Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassName为action类的简单名称

国际化-JSP中直接访问某个资源文件
sturts2为我们提供了<s:i18n>标签,使用<s:i18n>标签我们可以在类路径下直接从某个资源文件中获取国际化数据,而无需任何配置

<s:i18n name="itcast">
<s:text name="welcome"/>
</s:i18n>
itcast为类路径下资源文件的基本名
如果要访问的资源文件在类路径的某个包下,可以这样访问;
<s:i18n name="cn/itcast/action/package">
    <s:text name="welcome">
        <s:param>校长</s:param>
    </s:text>
</s:i18n>

posted on 2011-07-10 14:53  悟生慧  阅读(359)  评论(0编辑  收藏  举报

导航