Acceso HttpServletRequest objeto en la primavera de WebFlow
-
21-09-2019 - |
Pregunta
Estoy utilizando WebFlow y me gustaría añadir la actual configuración regional en el flujo. Ya tengo un método resolveLocale que hace esto con esta firma:
public Locale resolveLocale (HttpServletRequest request);
Me gustaría añadir algo como esto en mi XML WebFlow:
<on-start>
<evaluate expression="localeService.resolveLocale(???)" result="flowScope.locale"/>
</on-start>
Ahora, no sé qué poner en el ??? parte de parámetros.
¿Algunas ideas? Gracias por leer.
Solución
No he utilizado Web Flow, pero suponiendo que es similar al del resto de la primavera, se puede utilizar el RequestContextHolder para esto. Una rápida búsqueda en Google sugiere que el flujo de web incluso le da un web específica flujo RequestContextHolder - aún mejor
Otros consejos
Una forma más fácil para acceder a la configuración regional es LocaleContextHolder de la primavera
Sólo tiene que llamar: LocaleContextHolder.getLocale ()
Usted puede obtener HttpServletRequest en este estilo
(HttpServletRequest)RequestContextHolder.getRequestContext().getExternalContext().getNativeRequest()
Gracias por sus consejos. Estoy usando la siguiente línea en mi servicio (mi SWF-config utiliza el SessionLocaleResolver):
Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION);