我正在使用WebFlow,并希望将当前的Locale添加到流中。 我已经有了一个resolveLocale方法,可以使用此签名执行此操作:
public Locale resolveLocale (HttpServletRequest request);
我想在我的WebFlow XML中添加类似的内容:
<on-start>
<evaluate expression="localeService.resolveLocale(???)" result="flowScope.locale"/>
</on-start>
现在,我不知道该放什么???参数部分。
有任何想法吗?谢谢你的阅读。
答案 0 :(得分:4)
我没有使用过Web Flow,但是假设它与Spring的其余部分相似,你可以使用RequestContextHolder。快速谷歌搜索表明,Web Flow甚至可以为您提供web flow specific RequestContextHolder - 更好的
答案 1 :(得分:3)
访问语言环境的更简单方法是spring的LocaleContextHolder
只需调用:LocaleContextHolder.getLocale()
答案 2 :(得分:2)
你可以用这种风格获得HttpServletRequest
(HttpServletRequest)RequestContextHolder.getRequestContext().getExternalContext().getNativeRequest()
答案 3 :(得分:1)
感谢您的提示。我在我的服务中使用以下行(我的SWF-config使用SessionLocaleResolver):
Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION);