Acessando o objeto HttpServletRequest no spring webflow
-
21-09-2019 - |
Pergunta
Estou usando o Webflow e gostaria de adicionar o local atual ao fluxo. Eu já tenho um método de resolução que faz isso com esta assinatura:
public Locale resolveLocale (HttpServletRequest request);
Eu gostaria de adicionar algo assim no meu webflow xml:
<on-start>
<evaluate expression="localeService.resolveLocale(???)" result="flowScope.locale"/>
</on-start>
Agora, não sei o que colocar no ??? Parte do parâmetro.
Alguma ideia? Obrigado pela leitura.
Solução
Não usei o fluxo da web, mas presumindo que seja semelhante ao restante da primavera, você pode usar o requestContextholder para isso. Uma rápida pesquisa no Google sugere que o fluxo da web até lhe dá um Web Flow Specific RequestContextholder - melhor ainda
Outras dicas
Uma maneira mais fácil de acessar a localidade é a Spring LocalEContextholder
Basta ligar: localEContextholder.getLocale ()
Você pode obter httpServletRequest neste estilo
(HttpServletRequest)RequestContextHolder.getRequestContext().getExternalContext().getNativeRequest()
Obrigado por suas dicas. Estou usando a seguinte linha no meu serviço (meu SWF-Config usa o SessionLocaleResolver):
Locale locale = (Locale) RequestContextHolder.getRequestAttributes().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, RequestAttributes.SCOPE_SESSION);