为什么我在HttpServletResponse中的语言环境始终是en_US?

时间:2014-07-01 09:20:46

标签: java spring spring-mvc servlets locale

我使用 Spring MVC 作为我们的控制器框架,为了实现我们的应用程序国际化,我使用org.springframework.web.servlet.i18n.LocaleChangeInterceptor来检测语言更改,我希望系统默认如果没有设置特定语言,语言将被设置为用户客户端的语言环境。现在我在设置默认语言环境时遇到了一个陌生人的问题,我来自中国,默认情况下locale是zh_CN,当我们的系统部署在Windows服务器上时,我可以从{{1}获得正确的语言环境(zh_CN)但是,当我们的系统部署在Ubuntu Linux服务器上时,我始终从HttpServletResponse获得en_US区域设置。我对此感到困惑,我们知道HttpServletResponse语言环境来自Web浏览器等客户端,2个请求来自同一语言环境,但在HttpServletResponse's中出现了2个不同的语言环境。

谢谢,我想知道是否有任何人曾经发生并最终解决了这个问题。

1 个答案:

答案 0 :(得分:0)

您是否也使用了CookieLocaleResolver

<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="locale" />
</bean>
<mvc:interceptors>     
    <ref bean="localeChangeInterceptor"/>
</mvc:interceptors>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <property name="defaultLocale">
        <bean  class="java.util.Locale">
            <constructor-arg value="zh" />
            <constructor-arg value="CN" />
        </bean>
    </property>
</bean>

<强>更新

您的网页是否已声明?

<meta http-equiv="Content-language" content="zh-CN" />