我已经在Spring配置文件中将“ localeResolver” bean定义为
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver">
<property name="defaultLocale" value="language" />
</bean>
用户点击此URL更改语言环境
/setLocale.do?language=fr
但是在调用此方法之前,我得到了异常
java.lang.UnsupportedOperationException:
。为了解决它,我必须使用SessionLocaleResolver
无论如何,我不必使用
SessionLocaleResolver
。 最佳答案
看一下AcceptHeaderLocaleResolver
的实现,再仔细考虑一下它的名称。
https://github.com/bbossgroups/bbossgroups-3.5/blob/master/bboss-mvc/src/org/frameworkset/web/servlet/i18n/AcceptHeaderLocaleResolver.java
注意:不支持setLocale,因为只能通过更改客户端的语言环境设置来更改accept标头。AcceptHeaderLocaleResolver
将从请求中解析Locale
(使用accept标头),仅此而已。无法将其locale属性设置为任何其他值。如果您需要更改语言环境,请使用SessionLocaleResolver
。如果现有的解析器不适合您的目标,总是可以选择编写自己的解析器。