Spring Web Flow is the project in the Spring Portfolio that focuses on providing the infrastructure for building and running rich web application development. As a Spring project, Web Flow builds on the Spring Web MVC framework to provide:
- A domain-specific-language for defining reusable controller modules called flows
- An advanced controller engine for managing conversational state
- First-class support for using Ajax to construct rich user interfaces
- First-class support for using JavaServerFaces with Spring
The Web Flow module is a MVC extension that allows you to define Controllers using a domain-specific-language. This language is designed to model user interactions that require several requests into the server to complete, or may be invoked from different contexts.
In short, it is like a state machine for your web application. If you web application has a clear defined state transition navigation pattern for the user, then you should consider using Spring Web Flow.