struts2通过ajax动态改变系统后台的语言来达到国际化页面切换的功能

来源:互联网 发布:觉醒字幕组知乎 编辑:程序博客网 时间:2024/06/04 21:56

利用jquery动态获取不同语言页面

1:制作选择连接

        <divid="language">

        <a id="zh_TW" href=""></a> |

             <aid="zh_CN" href=""></a> |

             <aid="en" href="">EN</a>

      </div>

2:编写jquery来处理超链接click事件

    var $atag = $("a");

    $atag.click(function(){

        varurl = "Language.action";

        vardata = {

            sourcePage:"/page/i18n.jsp",

            setLanguage:this.id

        };

        $.get(url,data);

    });

 

 

 

 

 


3:编辑action

publicclass I18nAction extends ActionSupport{

  String setLanguage = null;

    String sourcePage = null;

  public String getSetLanguage(){

        return setLanguage;

    }

 

    public void setSetLanguage(String setLanguage) {

        this.setLanguage =setLanguage;

    }

 

    public String getSourcePage() {

        return sourcePage;

    }

 

    public void setSourcePage(String sourcePage) {

        this.sourcePage =sourcePage;

    }

 

public String changeLanguae(){

        System.out.println("setLanguage=" + setLanguage +"sourcePage="                                                     +sourcePage);

        ActionContext ctx = ActionContext.getContext();

        //设置语言

        setLanguage = setLanguage.trim();

        if("en".equals(setLanguage)){

            ctx.getSession().put("WW_TRANS_I18N_LOCALE",                                                                Locale.ENGLISH);

            ctx.setLocale(Locale.ENGLISH);

        }else if ("zh_CN".equals(setLanguage)){

            ctx.getSession().put("WW_TRANS_I18N_LOCALE",                                                     Locale.SIMPLIFIED_CHINESE);

            ctx.setLocale(Locale.SIMPLIFIED_CHINESE);

        }else if("zh_TW".equals(setLanguage)){

            ctx.getSession().put("WW_TRANS_I18N_LOCALE",                                                    Locale.TRADITIONAL_CHINESE);

            ctx.setLocale(Locale.TRADITIONAL_CHINESE);

        }else{

            ctx.getSession().put("WW_TRANS_I18N_LOCALE",                                                                Locale.FRANCE);

            ctx.setLocale(Locale.FRANCE);

        }

        if(sourcePage!=null){

            return"success";

        }else{

            return"error";

        }

    }

}

4:编辑struts.xml文件

<actionname="Language"               class="i18n.I18nAction"method="changeLanguae">

       <resultname="success">${sourcePage}</result>   

       <resultname="error">/index.jsp</result>   </action>

0 0
原创粉丝点击