2009-12-29 7 views
0

J'utilise WebFlow et je souhaite ajouter l'environnement local en cours dans le flux. J'ai déjà une méthode resolveLocale qui fait cela avec cette signature:Accéder à l'objet HttpServletRequest dans Spring WebFlow

public Locale resolveLocale (HttpServletRequest request); 

Je voudrais ajouter quelque chose comme ça dans mon XML WebFlow:

<on-start> 
<evaluate expression="localeService.resolveLocale(???)" result="flowScope.locale"/> 
</on-start> 

Maintenant, je ne sais pas quoi mets dans le ??? partie du paramètre.
Des idées? Merci d'avoir lu.

Répondre

4

Je n'ai pas utilisé Web Flow, mais en supposant qu'il soit similaire au reste de Spring, vous pouvez utiliser RequestContextHolder pour cela. Une recherche rapide sur Google suggère que le Web flux vous donne même un web flow specific RequestContextHolder - encore mieux

+0

Merci! c'était ce dont j'avais besoin – user198530

2

vous pouvez obtenir HttpServletRequest dans ce style

(HttpServletRequest)RequestContextHolder.getRequestContext().getExternalContext().getNativeRequest() 
1

Merci pour vos conseils. J'utilise la ligne suivante dans mon service (mon fichier SWF-config utilise le SessionLocaleResolver):

Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION); 
Questions connexes