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.

È stato utile?

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 ()

http: // static.springsource.org/spring/docs/2.5.x/api/org/springframework/context/i18n/LocaleContextHolder.html

è 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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top