novembro 14, 2011

O que é Spring Web Flow?

Por Rogerio Coli

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.