首先我要说的是,我是开发Spring Application的绝对初学者。我尝试做的是从' en'切换区域设置。到了' de'为此我找到了下面的配置,我把它放在我的mvc-dispatcher-servlet.xml
中 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="Messages" />
</bean>
<!-- Localization Start -->
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="en" />
</bean>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language" />
</bean>
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
</bean>
之后我希望我可以通过添加&#39;?language = de&#39;来更改语言环境。在现有网址后面。所以请求&#39; http://localhost:8080/?language=de&#39;应该切换语言环境。这没用。该网站以定义的默认语言
显示我的属性文件位于/ src / main / resources中。名称是“Messages_en.propperties”和“Messages_de.propperties”。如果我将默认语言切换为“de”,则加载正确的语言文件,并以德语显示网站。 有人知道我的配置有什么问题吗?
答案 0 :(得分:2)
我相信您必须在Spring
中使用拦截器注册LocaleChangeInterceptor<!-- Declare the Interceptor -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
p:paramName="locale" />
</mvc:interceptors>
LocaleChangeInterceptor配置为查找参数名称“locale”以指示用户区域设置的更改,并使用Spring MVC命名空间注册为拦截器。例如,将“locale = es”添加到URL会将语言环境更改为西班牙语。