什么是Struts2中的Requestprocessor.processLocale方法的等价物?

时间:2016-06-11 18:35:20

标签: java struts2 internationalization migration locale

我是Struts 2的新手,我正在努力将Struts 1代码迁移到Struts 2,其中我有类似的方案,Action Servlet已扩展,在扩展类“process”方法中,locale已在请求中设置为如下所示,

public class TestServlet extends ActionServlet  {

    protected void process(HttpServletRequest request, HttpServletResponse response)
                    throws IOException, ServletException {
            Locale locale = Locale.ENGLISH;
        locale = Locale.FRENCH;
        request.setAttribute("_locales", locale);

        super.process(request, response);

    }

}

如何将此更改迁移到struts 2中。在Struts 2中,此方法的等效方法是什么?

1 个答案:

答案 0 :(得分:1)

在Struts2中,您不再需要actionservlet或requestprocessor,一切都是通过i18n拦截器完成的。

希望你能在this回答中找到帮助。

  

Struts2国际化拦截器i18n可以用来   动态地将当前用户区域设置更改为用户特定的区域设置   对于用户的会话。

     
    

“或者,仅适用于当前请求(自XWork 2.1.3起)”

  
     

通过发出HTTP请求并提供请求参数   request_locale,其中包含创建的“en_US”等语言环境的值   美国英语的语言环境。

     

此区域设置默认保存在会话中   “WW_TRANS_I18N_LOCALE”属性并用作当前区域设置   用户会话。当前的语言环境也被推入了   每个请求都由此拦截器映射ActionContext。这允许   支持本地化的框架组件都利用了   ActionContext的语言环境。

此外,如果您想了解如何获取当前的区域设置,您应该阅读我对Get user locale detected by i18n interceptor in action class的回答。