无法更改HTTP接受标头 - 使用不同的区域设置解析策略

时间:2014-05-20 17:36:22

标签: java spring jsp web interceptor

我在Pluralsight上关注Spring mvc课程,我有"无法更改HTTP接受标头 - 使用不同的区域设置解析策略"运行我的应用程序时出现此错误 在此之前,我将theese beans添加到servlet-config.xml

<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" p:paramName="language" />
</mvc:interceptors>         

<bean id="localResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" p:defaultLocale="en" />

在资源文件夹中,我有两个文件。 messages_es.properties和messages.properties。一个人有goal.text=Minutos Ejercicio para el día de hoy:和其他goal.text=Minutes Exercise For The Day Today: 所以目标是选择语言。

在jsp文件中我有关于它的这一行

Language : <a href="?language=en">English</a> | <a href="?language=es">Spanish </a>

那么我怎样才能使它正常工作?

3 个答案:

答案 0 :(得分:20)

将bean id从“localResolver”更改为“localeResolver”

答案 1 :(得分:4)

我通过使用此处提供的解决方案将方法命名为localeResolver来解决此问题Spring 4 i18n & l10n (Cannot change HTTP accept header)

@Bean
public LocaleResolver localeResolver()
{
    final SessionLocaleResolver localeResolver = new SessionLocaleResolver();
    localeResolver.setDefaultLocale(new Locale("en", "US"));
    return localeResolver;
}

答案 2 :(得分:0)

我通过更改基本名称解决了这个问题。

我有两个消息文件:messages_en_US.properties,messages_zh_CN.properties。

基本名称应为“消息”。

以便spring可以检测参数是en_US还是zh_CN。