Spring本地化不适用于首次点击,On Refresh It Works ..!

时间:2014-12-03 07:17:02

标签: java spring spring-mvc

当我第一次访问页面时,区域设置没有发生变化,但随后刷新区域设置变化完美。我搜索了很多,但没有找到任何解决这种荒谬行为的方法。 下面我分享我的spring配置文件的代码。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.1.xsd
     http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
    ">

    <bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
    <mvc:interceptors>
        <ref bean="localeChangeInterceptor" />
    </mvc:interceptors>

    <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:i18/messages" />
        <property name="defaultEncoding" value="UTF-8" />
    </bean>


    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
        <!-- <property name="defaultLocale" value="en" /> -->
        <property name="cookieName" value="springlang"/>
    </bean>

    <bean id="handlerMapping"
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="interceptors">
            <ref bean="localeChangeInterceptor" />
        </property>
    </bean>

</beans>

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。这是我在mvc-dispatcher-servlet.xml中的代码:

<mvc:interceptors> 
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language"/>
    </bean>
</mvc:interceptors>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <property name="defaultLocale" value="fr" />
    <property name="cookieName" value="lang"/>
    <property name="cookieMaxAge" value="2147483647" />
</bean>

在我的JSP中,我必须使用${pageContext.response.locale}来获取不刷新的语言环境。