`

struts2中的国际化问题

阅读更多
国际化

1.全局范围的资源文件
  在src目录下简历资源文件,取名过则为:baseName_laguage_country.properties,如wzh_en_US.properties,wzh_zh_CN.properties,
  然后在struts.xml中配置
 <constant name="struts.custom.i18n.resources" value="wzh" />
 

value为资源文件名称的baseName
 
2.在页面或action中访问国际化信息 
  2.1> 在jsp页面上显示方式
    
  <s:text name="welcome" />

name为资源文件中的key值
  2.2> 在action中访问
      action类必须继承ActionSupport ,使用getText()方法得到国际化信息,该方法的第一个参数用于指定资源文件中的key值。
      如action中
    
 public String execute(){
		ActionContext.getContext().getSession().put("message", this.getText("welcome")) ;
		return "success";
	  }  
  2.3> 在表单标签中,通过key属性指定资源文件中的key值。
      如:<s:textfield  key="welcome" />
3.输出带有占位符的国际化信息
   3.1> jsp页面输出
      
 <s:text name="welcome" >
           <s:param>liming</s:param>
           <s:param>study</s:param>
        </s:text>
   3.2> 在action中设置占位符的国际化信息
        在action中
      
 public String execute(){
		ActionContext.getContext().put("message", this.getText("welcome",new String[]{"wzh","study"})) ;
		return "success";
	    }
        在jsp上${message }显示国际化信息
  
4.包范围的资源文件
    在java的包下放置package_language_country.properties资源文件,package为固定写法
    如: package_en_US.properties,package_zh_CN.properties .
    处于该包及子包下的action都可以访问该资源,当查找指定key的消息时,系统会先从package资源文件下查找,当找不到对应的key时才会从指struts.custom.i18n.resources 的资源文件中查找,
   
    另外:需注意的是,只有经过action跳转才会现在package下查找,如找不到则到指定的资源文件下查找,
    如果没有经过action,则只会到指定的资源文件下查找
 
5. action范围的资源文件
     在action类所在的路径下放置ActionClassName_language_country.properties资源文件,ActionClassName为action的简单名称。当经过action查找指定资源时,系统会先在action路径下查找,然后在package下查找,如果没找到,最后会在指定的资源文件下查找。
      
6 .jsp中直接访问指定的资源文件下的国际化信息
    所谓的jsp直接访问就是没有经过action跳转的
    如:
   
 访问全局资源文件=
   <s:i18n name="wzh">
       <s:text name="welcome" >
          <s:param>liming</s:param>
          <s:param>study</s:param>
   </s:text>
   </s:i18n>
   <br/>  
     访问包下的资源文件=
   <s:i18n name="cn/itcast/action/package">
       <s:text name="welcome" >
          <s:param>liming</s:param>
          <s:param>study</s:param>
   </s:text>
   </s:i18n>
   <br/>
   
     访问action 范围资源文件=
   <s:i18n name="cn/itcast/action/HelloWorldAction">
       <s:text name="welcome" >
          <s:param>liming</s:param>
          <s:param>study</s:param>
   </s:text>
   </s:i18n>
   <br/>
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics