Quand je change la langue preffered via le paramètre de demande la langue changements dans les pages Web (les messages sont récupérés avec <spring:message code="xxxx"/>
), mais locale ne change pas dans les contrôleurs, par exemple:Controller locale HttpServletRequest ne change pas
private void simpleControllerMethod(HttpServletRequest request, HttpServletResponse response, ModelAndView model) {
System.out.println(request.getLocale().toString()); // prints default application locale no matter what
}
dispather-servlet.xml contient:
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
<property name="defaultEncoding" value="UTF-8" />
<property name="fallbackToSystemLocale" value="false" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="lt" />
<property name="cookieName" value="lang" />
<property name="cookieMaxAge" value="3600"/>
</bean>
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang"></property>
</bean>
</mvc:interceptors>
Pourquoi les paramètres régionaux ne changent pas pour HttpServletRequest?
Comportement inattendu de 'HttpServletRequest.getLocale()' d'une part, le défaut de lire ce que la méthode ne fait exactement l'autre main. Merci d'avoir répondu. – user435421