Dear Spring Community,
Spring Web Flow is the project in the Spring Portfolio that focuses on providing the infrastructure for building and running rich web applications. 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 modules of the Web Flow 2 distribution and their relationship with the Spring Framework are illustrated below:
What's in Web Flow 2
Spring Web MVC
The Spring Web MVC framework, a module of the Spring Framework distribution, provides the foundation for developing web applications with Spring using the proven ModelViewController paradigm. Each of the modules of the Web Flow distribution builds on this foundation.
Spring Web Flow
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.
Themes of the Web Flow 2 Release
Across each of the modules, the Web Flow 2 distribution adds a number of interesting integrations that allow you to enrich your web applications. These integrations support:
- Using Spring Security to secure your flows in a declarative manner
- Using Tiles for JSP page composition and Ajax partial-rendering
- When using JSF, using Facelets for page composition and layout
- When using JSF, using Apache Trindad and JBoss RichFaces component libraries
The flow definition language has been simplified tremendously in Web Flow 2 while becoming more powerful overall. These simplifications include:
- An appoximate 50% overall reduction in lines-of-code when comparing a version 2 flow definition with its version 1 equivalent (example: version 2 vs version 1)
- A concise syntax for invoking actions using an Expression Language (EL), with support for both the Unified EL and OGNL
- Declarative model binding and validation, with support for convention-over-configuration
- Support for reuse at both the flow and state levels using flow definition inheritance
- Enhanced modularity, allowing a flow and its dependent resources to be packaged together in a self-contained bundle
- Web Flow 2 requires Java 1.4 or greater and runs on all major Java EE platforms including Tomcat, Jetty, Websphere, WebLogic, and JBoss.
- Web Flow 2 requires Spring Framework 2.5.4 or greater.
- Web Flow 2 has been certified by SpringSource as "Platform Ready" and is fit to run on the SpringSource dm Server in OSGi-enabled web applications.
- Get started using Web Flow by downloading the release and walking through the reference applications. Supplement with the documentation as you go to familiarize yourself with the feature set.
- To get started using a build system such as Maven or Ant+Ivy, access Web Flow artifacts from the Maven Central Repository.
- To get started using Web Flow in an OSGi environment on the SpringSource Application Platform, download the platform and get Web Flow bundles from the SpringSource Enterprise Bundle Repository.
Additional Community Resources
- Read the interview with Keith Donald and Jeremy Grelle of SpringSource describing what’s new in the Web Flow 2 distribution in more detail
- Get involved with the Web Flow 2 community on the Spring Community Forums
- Explore Spring Web reference applications on-line. The Spring Travel application showcases the integrated Web Flow 2 feature set and is included in the distribution. The SpringSource Enterprise Bundle Repository is a real-world application in production built on Spring 2.5 and Spring Web Flow 2.0.
- If you are an existing Web Flow 1 user, review the migration guide to help in upgrading to Web Flow 2. The WebFlowUpgrader tool automates the conversion of your flows to the version 2 syntax
- Submit bug reports and requests for enhancement using the Web Flow issue tracker
- Track updates to the Web Flow source repository with Fisheye
- Checkout the Web Flow source code from the Spring Project SVN Repository
- Watch for upcoming articles on Web Flow 2 by subscribing to springframework.org