Struts2 struts 2和sitemesh本地化

Struts2 struts 2和sitemesh本地化,struts2,localization,sitemesh,Struts2,Localization,Sitemesh,我正在使用struts 2和sitemesh。我可以通过设置一个名为“request\u locale”的请求参数,毫无问题地更改登录页面中的语言环境。但在所有其他页面中,我使用sitemesh装饰页眉和页脚。我尝试为其他页面设置相同的参数,但没有成功。以下是我在登录操作中尝试的一些其他代码: request.getSession(false).setAttribute("WW_TRANS_I18N_LOCALE", newLocale); ActionContext.getContext().

我正在使用struts 2和sitemesh。我可以通过设置一个名为“request\u locale”的请求参数,毫无问题地更改登录页面中的语言环境。但在所有其他页面中,我使用sitemesh装饰页眉和页脚。我尝试为其他页面设置相同的参数,但没有成功。以下是我在登录操作中尝试的一些其他代码:

request.getSession(false).setAttribute("WW_TRANS_I18N_LOCALE", newLocale);
ActionContext.getContext().setLocale(newLocale);
session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, newLocale);
当我写下这些设置时,我看到一切正常。 但是当我写下

<c:out value="${pageContext.request.locale.language}"/>

它总是显示浏览器接受这种语言,而不进行任何本地化。
如何进行本地化以使用sitemesh?

我尝试使用请求区域设置参数将登录操作重定向到名为home的操作,然后此操作重定向到index.jsp。现在一切都好了。 我将默认操作设置为home操作,所以当用户从地址栏进入根页面时,它将激活home操作,这样i18n拦截器和Interactor将处于活动状态。 这是struts.xml中的login.action:

<action name="login" class="wateron.login.LoginAction" >
        <result type="redirectAction">
            <param name="actionName">home?request_locale=${request_locale}</param>
            <param name="namespace">/</param>
        </result> 
</action>

所以一切都正常,您只是不知道如何在JSP中显示当前区域设置?不,在登录后,我重定向到index.JSP页面。但页面是用浏览器的默认语言呈现的。如果是因为重定向到页面,我现在正在搜索。我将尝试重新导向行动。
<package name="default" extends="struts-default" namespace="">
    <default-action-ref name="home" />
    <action name="home">
        <result>/index.jsp</result>     
    </action>
</package>