0

我正在使用 WebFlow,并希望将当前语言环境添加到流中。我已经有一个使用此签名执行此操作的 resolveLocale 方法:

public Locale resolveLocale (HttpServletRequest request);

我想在我的 WebFlow XML 中添加类似这样的内容:

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

现在,我不知道该放什么???参数部分。
有任何想法吗?谢谢阅读。

4

4 回答 4

4

我没有使用过 Web Flow,但假设它与 Spring 的其余部分类似,您可以为此使用 RequestContextHolder。快速的 Google 搜索表明 Web Flow 甚至为您提供了特定于Web 流的 RequestContextHolder - 甚至更好

于 2009-12-29T01:13:18.497 回答
3

访问语言环境的一种更简单的方法是 spring 的 LocaleContextHolder

只需调用:LocaleContextHolder.getLocale()

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

于 2010-10-13T08:15:13.013 回答
2

你可以得到这种风格的 HttpServletRequest

(HttpServletRequest)RequestContextHolder.getRequestContext().getExternalContext().getNativeRequest()
于 2010-04-27T07:26:38.373 回答
1

感谢您的提示。我在我的服务中使用以下行(我的 SWF 配置使用 SessionLocaleResolver):

Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION);
于 2010-06-10T14:55:41.830 回答