0
在我的REST API我想允許用戶使用lang
參數來設置語言環境,即春REST API和國際化
http://somehost/resource?param1=value1&lang=fr
如果lang
參數不存在於URL則Accept-Language
頭應被使用並設置爲區域設置。
我在我的REST API中使用了Spring的i18n特性。我瀏覽了文檔並配置了必要的bean。如果我通過Accept-Language
標題發送請求,它似乎可以正常工作,當我呼叫LocaleContextHolder.getLocale()
時,它會返回我在標題中設置的語言環境。
如果我使用lang
URL參數不起作用。
我該如何配置Spring以使用區域設置參數呢?
<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>