Spring Web Flow

The Spring Framework has recently released a preview of a new subproject called Spring Web Flow (SWF). SWF is a component that sits on top of existing web frameworks to allow the explicit creation page flows.

TSS has a nice introductory article about this new subproject.

In the past months I worked for a project to extend an e-procurement system with new functionality. This system had some very complex page flows and after reading the TSS article for SWF I can instantly see how a web-flow framework could have made our lives a lot easier while working for this project.

Except for the other advantages (like flow reusability and modularization) page flow definitions can provide good documentation for maintenance programmers. I remember it was painful to discover the page flow for a particular use case while working with the above system. You had to see the application in action and dig into action and JSP code, a process that is painful and time consuming. With SWF all you have to do is look at the page flow definition XML file.

So I believe that the SWF will be a very useful addition to the Spring Framework for applications that have complex page flows.

BTW SWF is independent of the actual web framework. SWF currently supports Spring-MVC, Struts and Portlets.

Other similar open source web flow frameworks include: