问题
在Spring MVC应用程序中,使用“ org.springframework.web.servlet.i18n.LocaleChangeInterceptor ”更改语言环境时,出现以下错误
java.lang.UnsupportedOperationException:
Cannot change HTTP accept header - use a different locale resolution strategy
...AcceptHeaderLocaleResolver.setLocale(AcceptHeaderLocaleResolver.java:45)
解
在Spring MVC应用程序中,如果不配置Spring的LocaleResolver,它将使用默认的AcceptHeaderLocaleResolver ,该默认值不允许更改语言环境。 要解决这个问题,请尝试在Spring bean配置文件中声明一个SessionLocaleResolver bean,它在大多数情况下应该是合适的。
<beans ...
<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>
</beans>
参考
标签: 春天MVC