Вопрос

Я использую WebFlow и хотел бы добавить текущий языковой стандарт в поток.У меня уже есть методsolveLocale, который делает это с помощью этой подписи:

public Locale resolveLocale (HttpServletRequest request);

Я хотел бы добавить что-то подобное в свой XML WebFlow:

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

Теперь я не знаю, что поставить в ???параметрическая часть.
Есть идеи?Спасибо за прочтение.

Это было полезно?

Решение

Я не использовал Web Flow, но, предполагая, что он похож на остальную часть Spring, для этого вы можете использовать RequestContextHolder.Быстрый поиск в Google показывает, что Web Flow даже дает вам RequestContextHolder для конкретного веб-потока - даже лучше

Другие советы

Более простой способ доступа к локали — это Spring LocaleContextHolder.

Просто позвони:LocaleContextHolder.getLocale()

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

вы можете получить HttpServletRequest в этом стиле

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

Спасибо за ваши подсказки.Я использую следующую строку в своем сервисе (моя SWF-конфигурация использует SessionLocaleResolver):

Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top