您的位置:首页 > 编程语言 > Java开发

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

2016-02-03 16:26 537 查看
利用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文件

<action
name="Language"               
class="i18n.I18nAction"
method="changeLanguae">
       <result
name="success">${sourcePage}</result>   

       <result
name="error">/index.jsp</result>   
</action>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息