Struts2 的 i18n 通过action到jsp可以切换语言,jsp通过<a>直接到jsp语言就不能切换,why??
最近使用Struts2 的 i18n 做网站的中英文国际化,第一次使用国际化,结果遇到这样一个问题:我在show.jsp切换语言到英文,然后通过action跳转到to.jsp,能正常显示英文, 再在to.jsp中通过action跳转到index.jsp也能显示英文,每个action 都只做跳转用,没有其他代码,
,但是如果我在show.jsp切换语言到英文后,直接通过<a>跳转到to.jsp,还是只能显示中文 这是为什么呢,请大家帮助一下,谢谢!
struts.xml 中有配置 <constant name="struts.custom.i18n.resources" value="message"/>
中英文语言的propeties 有
这是切换英语的代码 <a href="test.action?languageName=en&request_locale=en_US">english</a><br />
这个是切换语言时的action
private String languageName;
public String getLanguageName() {
return languageName;
}
public void setLanguageName(String languageName) {
this.languageName = languageName;
}
public String test(){
Locale locale = Locale.getDefault();
if(languageName.equals("zh")){
locale = new Locale("zh","CN");
}else if(languageName.equals("en")){
//locale = Locale.US;
locale = new Locale("en","US");
}
ServletActionContext.getRequest().getSession().setAttribute("WW_TRANS_I18N_LOCALE",locale);
ServletActionContext.getContext().setLocale(locale);
//ActionContext.getContext().setLocale(locale);
return "success";
}