【发布时间】:2013-08-24 18:30:05
【问题描述】:
在我的 REST API 中,我希望允许用户使用 lang 参数设置语言环境,即
http://somehost/resource?param1=value1&lang=fr
如果 URL 中不存在 lang 参数,则应使用 Accept-Language 标头并将其设置为区域设置。
我在我的 REST API 中使用 Spring 的 i18n 功能。我查看了文档并配置了必要的 bean。如果我发送带有Accept-Language 标头的请求,它似乎可以正常工作,当我调用LocaleContextHolder.getLocale() 时,它会返回我在标头中设置的语言环境。
如果我使用lang URL 参数,它不起作用。
如何配置 Spring 也使用 locale 参数?
<bean id="localeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
<property name="interceptors">
<list>
<ref bean="localeInterceptor" />
</list>
</property>
</bean>
<bean id="sessionLocaleResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
<bean id="messages" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>
【问题讨论】:
标签: java spring rest spring-mvc internationalization