gpt4 book ai didi

java - 使用 Spring MVC 配置语言环境切换

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:30 24 4
gpt4 key购买 nike

首先我必须说,我是开发 Spring 应用程序的绝对初学者。我尝试做的是将语言环境从“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>

之后,我希望可以通过在现有 URL 后面添加“?language=de”来更改语言环境。所以请求'http://localhost:8080/?language=de ' 应该切换语言环境。这没有用。该网站以定义的默认语言显示

我的属性文件位于/src/main/resources。名称是“Messages_en.propperties”和“Messages_de.propperties”。如果我将默认语言切换为“de”,则会加载正确的语言文件,并且网站会以德语显示。有人知道我的配置有什么问题吗?

最佳答案

我相信您必须在 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 会将语言环境更改为西类牙语。

关于java - 使用 Spring MVC 配置语言环境切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com