M2h*_*2hp 5 java spring spring-mvc java-ee
在我的应用程序中,我已经定义了下面的bean,但是当我尝试使用参数ex:?lang = es更改Locale时它对我不起作用而且显示的东西是CookieLocaleResolver中定义的默认语言环境,即英语.
这是我的bean类:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="resources/i18n/messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieName" value="lang" />
<property name="defaultLocale" value="en" />
</bean>
<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我想要实现的是使用参数更改语言并将其保存在与此相关的cookie中,以便进一步请求语言环境是新的语言环境语言!
我也不想使用下面的类,因为它已经被弃用了:
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
我的声明式bean实现有什么问题?
我相信你应该这样定义interceptor:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="resources/i18n/messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
</mvc:interceptor>
</mvc:interceptors>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieName" value="lang" />
<property name="defaultLocale" value="en" />
</bean>
Run Code Online (Sandbox Code Playgroud)
MVC命名空间定义如下:
xmlns:mvc="http://www.springframework.org/schema/mvc"
....
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"
Run Code Online (Sandbox Code Playgroud)
确保使用正确的xsd版本.
| 归档时间: |
|
| 查看次数: |
5853 次 |
| 最近记录: |