O que é Spring Web Flow?

Neste tutorial apresento uma s√©rie de perguntas e respostas para quem estiver interessado em saber um pouco mais sobre o Spring Web Flow e suas aplica√ß√Ķes.

O que é Spring Web Flow?
Spring Web Flow é uma extensão do Spring MVC que permite a implementação do fluxo de navegação de uma aplicação web.

O que é fluxo de navegação?
Um fluxo encapsula uma seq√ľ√™ncia de etapas que guiam o usu√°rio atrav√©s da execu√ß√£o de algumas tarefas de neg√≥cios. Ele abrange v√°rias solicita√ß√Ķes HTTP, estados, dados transacionais, √© reutiliz√°vel e pode ser din√Ęmico e de longa dura√ß√£o.

Quando devo usar o Spring Web Flow?
Quando sua aplicação necessitar de uma navegação controlada. Por exemplo, o check-in para um voo, a solicitação de um empréstimo, carrinho de compras, ou mesmo adicionando um passo de confirmação para um formulário. O que esses cenários têm em comum é uma ou mais das seguintes características:

  1. Há um início claro e um ponto final.
  2. O usuário deve passar por um conjunto de telas em uma ordem específica.
  3. As altera√ß√Ķes n√£o s√£o finalizados at√© a √ļltima etapa.
  4. Uma vez completo, não deve ser possível repetir uma transação acidentalmente.

Em que mais o Spring Web Flow pode ajudar?
Pode ajudar em aplica√ß√Ķes onde:

  1. Visualizar o fluxo é muito difícil.
  2. A aplicação tem um monte de código de acesso a sessão HTTP.
  3. Forçar a navegação controlada é importante, mas não possível.
  4. O suporte adequado ao botão Voltar do navegador parece inatingível.
  5. O navegador e o servidor ficam fora de sincronia com o uso do bot√£o “Voltar”.
  6. Várias abas do navegador causam problemas de concorrência com os dados da sessão HTTP.

Posso Integrar o Spring Web Flow com outras Tecnologias?
Certamente, Spring Web Flow fornece uma linguagem declarativa de defini√ß√£o de fluxo para os fluxos de cria√ß√£o em um n√≠vel maior de abstra√ß√£o. Ele permite que ele seja integrado em uma grande variedade de aplica√ß√Ķes sem quaisquer altera√ß√Ķes (para o modelo de programa√ß√£o de fluxo), incluindo Spring MVC, JSF, e at√© mesmo aplica√ß√Ķes Portlet web.

fonte: http://www.springsource.org/spring-web-flow#documentation. Acessado em 14/11/2011.

Comente este artigo!