Accedendo HttpServletRequest oggetto in Spring WebFlow
-
21-09-2019 - |
Domanda
Sto usando WebFlow e vorrei aggiungere il locale corrente nel flusso. Ho già un metodo di resolveLocale che fa questo con questa firma:
public Locale resolveLocale (HttpServletRequest request);
Vorrei aggiungere qualcosa di simile nella mia WebFlow XML:
<on-start>
<evaluate expression="localeService.resolveLocale(???)" result="flowScope.locale"/>
</on-start>
Ora, io non so cosa mettere nel ??? parte dei parametri.
Qualche idea? Grazie per la lettura.
Soluzione
Non ho usato Web Flow, ma presumendo è simile al resto della primavera, è possibile utilizzare il RequestContextHolder per questo. Una rapida ricerca su Google suggerisce che Web flusso vi darà anche un flusso web specifico RequestContextHolder - ancora meglio
Altri suggerimenti
Un modo più semplice per accedere al locale è LocaleContextHolder di primavera
Basta chiamare: LocaleContextHolder.getLocale ()
è possibile ottenere HttpServletRequest in questo stile
(HttpServletRequest)RequestContextHolder.getRequestContext().getExternalContext().getNativeRequest()
Grazie per i vostri suggerimenti. Sto utilizzando la seguente riga nel mio servizio (il mio SWF-config utilizza il SessionLocaleResolver):
Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION);