I am using WebFlow and would like to add the current Locale into the flow. I already have a resolveLocale method that does this with this signature:
public Locale resolveLocale (HttpServletRequest request);
I would like to add something like this in my WebFlow XML:
<on-start>
<evaluate expression="localeService.resolveLocale(???)" result="flowScope.locale"/>
</on-start>
Now, I don't know what to put in the ??? parameter part.
Any ideas? Thanks for reading.
I haven't used Web Flow, but presuming it's similar to the rest of Spring, you can use the RequestContextHolder for this. A quick Google search suggests that Web Flow even gives you a web flow specific RequestContextHolder - even better
An easier way to access the locale is spring's LocaleContextHolder
Just call: LocaleContextHolder.getLocale()
您可以以这种方式获取HttpServletRequest
(HttpServletRequest)RequestContextHolder.getRequestContext().getExternalContext().getNativeRequest()
Thanks for your hints. I'm using the following line in my service (my SWF-config uses the SessionLocaleResolver):
Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.