www springframework sec resolved property org cannot spring jsp java-ee spring-mvc spring-3

springframework - Cómo obtener la configuración regional del visitante en JSP utilizando SessionLocaleResolver de Spring 3



thymeleaf spring security 5 login (3)

Necesito obtener la configuración regional de un visitante en mis páginas JSP para poder mostrar correctamente un menú desplegable con una lista de idiomas y tener el idioma seleccionado de acuerdo con su configuración regional actual. Normalmente podría hacer algo como ${pageContext.request.locale} .

El problema, creo , es que solo me dará la configuración regional de acuerdo con los encabezados de solicitud del usuario (lo que envía el navegador). Pero el usuario puede haber cambiado su idioma / configuración regional, por lo que necesito usar el mecanismo de Spring que también mira la sesión:

RequestContextUtils.getLocale(request).toString();

Pero entonces no es tan fácil acceder a eso en una página JSP y tener el código JSP funcionando.

¿O hay otro mecanismo más fácil para mostrar un menú desplegable de idiomas a un usuario? ¿Spring almacena la configuración regional actual en un objeto fácilmente accesible desde JSP?


A medida que utiliza el SessionLocaleResolver, la configuración regional actual se almacena en la sesión utilizando un nombre de atributo especificado en la clase SessionLocaleResolver. La referencia a SessionLocaleResolver se almacena en la solicitud utilizando otro nombre de atributo (org.springframework.web.servlet.DispatcherServlet # LOCALE_RESOLVER_BEAN_NAME).

No veo una manera fácil de obtener la configuración regional directamente dentro de la página jsp sin usar código Java.

Buscaría la configuración regional actual y crearía la lista de idiomas seleccionables en el controlador y lo agregaría al modelo.

Esto hace que el código sea comprobable y mueve el código java del jsp al controlador.


Solución de una línea ...

RequestContextUtils.getLocale(request)


Para nosotros

${pageContext.response.locale}

Hizo el truco. Esta propiedad sigue lo que ha sido establecido por el solucionador de locale de Spring.