struts 2中的区域设置不变

时间:2014-12-08 20:04:12

标签: java struts2 locale interceptor setlocale

由于struts 2的默认I18nInterceptor在系统分发时失败,我已经实现了一个基于cookie的解决方案。我添加了一个拦截器来查找request_locale参数并设置cookie。它还寻找cookie。如果request_locale参数出现或存在cookie,我设置新的Locale。这个拦截器是在struts的I18N拦截器之后调用的。但是在设定之后,我看不到语言的变化。下面是拦截器的拦截方法。

public String intercept(ActionInvocation invocation) throws Exception {

    HttpServletRequest request = ServletActionContext.getRequest();
    String localeStr = request.getParameter("request_locale");
    if (localeStr != null) {
        setLocaleInCookie(localeStr);
    }
    if (localeStr == null) {
        localeStr = getLocaleFromCookie();
    }

    if (localeStr != null) {
        ActionContext.getContext().setLocale(new Locale(localeStr));
    }

    return invocation.invoke();
}

我想知道我做的是对的。有没有其他解决方案或解决方法呢?

0 个答案:

没有答案