我想使网站多语言。i18n Struts2中的拦截器使用
我有一个包含
<interceptor-ref name="i18n" />
用于改变区域设置的一个常见的jsp一个正常拦截器栈:
<s:a action="locale-manager" namespace="/common">
<s:param name="request_locale">fa_IR</s:param>
فارسی
</s:a>
<s:a action="locale-manager" namespace="/common">
<s:param name="request_locale">en_US</s:param>
English
</s:a>
和一个简单的LocaleManager动作
public class LocaleManager extends ActionSupport{
private static final Logger log = LoggerFactory.getLogger(LocaleManager.class);
public String execute() {
log.debug("Change the local to {}", getLocale());
return "homepage";
}
}
在上述情况下的i18n拦截器总是运行所有的动作,这是没有得到解决方案。因为用户单击区域设置管理器操作时,区域设置才会更改。
我试图删除拦截器栈和国际化的拦截只LocaleManager添加如下
@InterceptorRefs({ @InterceptorRef("i18n") })
public class LocaleManager extends ActionSupport{
.........
但它没有工作?!我错过了什么,或者我应该写自己的拦截器?
你到底想干什么?如果你想改变语言环境,那么你不需要采取行动来改变它。 –