struts2的国际化

1,在src/main/resources 目录下新建资源文件

     messages_en_US.properties:英文资源文件, 键值对(中英文对比)

     messages_zh_CN.properties:中文资源文件(中文要用转义的ascii码)

2,在struts.xml文件中配置:

     环境:value值为资源文件开头

    <!--国际化 -->

    <constantname="struts.custom.i18n.resources"value="messages"></constant>

     在拦截器栈中配置i18nd 拦截器:

    <!--国际化-->

      <interceptor-ref name="i18n"/>

  3,LanguageAction文件,采取的是链接形式的切换方式。

package cn.edu.hust.mestar.test.action;

import java.util.Locale;

import java.util.ResourceBundle;

import org.apache.struts2.convention.annotation.Action;

import org.apache.struts2.convention.annotation.Namespace;

import org.apache.struts2.convention.annotation.Result;

import org.apache.struts2.convention.annotation.Results;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")

@Component

@Action("language")

@Scope("prototype")

@Namespace("/test")

@Results({ @Result(name = "lang", location = "/WEB-INF/content/login.jsp") })

public class LanguageAction extends ActionSupport {

    private static final long serialVersionUID = 1L;

    public Locale local;//接收页面传递的Locale

值 

    public Locale getLocal() {

       return local;

    }

 

    public void setLocal(Locale local) {

       this.local = local;

    }

 

    public String loadLocale() {

    //根据local加载资源文件

if((Locale.US).equals(local)){

           ResourceBundle bundle = ResourceBundle.getBundle("messageResource",Locale.US);

       }

if((Locale.CHINA).equals(local)){

           ResourceBundle bundle = ResourceBundle.getBundle("messageResource",Locale.CHINA);

       }

       return "lang";

    }  

}

4,页面添加链接做切换:

<li>

<a href="${ctx}/test/language!loadLocale.action?request_locale=en_US">English</a></li>

<li>

<a href="${ctx}/test/language!loadLocale.action?request_locale=zh_CN">简体中文</a></li>

5,Jsp(login.jsp)页面:用<s:text name=”name”>,name作为key获取资源

<table class="noborder">

           <tr>

               <td><s:text name="j_username"/></td>

              <td><input type='text' id='j_username' name='j_username' class="required"

       <s:if test="not empty param.error">           value='<%=session.getAttribute(UsernamePasswordAuthenticationFilter.SPRING_SECURITY_LAST_USERNAME_KEY)%>'</s:if> />

               </td>

           </tr>

           <tr>

              <td><s:text name="j_password"/></td>

              <td><input type='password' id='j_password' name='j_password' class="required"/></td>

           </tr>

           <tr>

              <td colspan='2' align="right">

                  <input type="checkbox" name="_spring_security_remember_me"/><s:text name="remember"/>

                  <input value="<s:text name="login"/>" type="submit" class="button"/>

              </td>

           </tr>

       </table>

 

 

 

posted on 2013-01-24 22:48  java疯子  阅读(188)  评论(0编辑  收藏  举报

导航