Spring Web Flow Project Update |
|

The Spring Web Flow project team has just completed the 7th maintenance release of Web Flow 2. This is our best release to-date and comes nearly one year to the day of the Web Flow 2.0.0 final release. Now, with the 2.0.x line mature and stable, we are beginning work on the next major version. In this entry, I would like to reflect on the past year and also provide some information on where we are headed.
Web Flow 2 Adoption
When Web Flow 2 was released last year, we saw 50,000 downloads in the first two months after the release. Since then, our forum traffic has steadily increased, and we have seen new adoption across several exciting industries. Many of you know Spring Web Flow is the foundation of Orbitz's on-line travel platform which today powers sites such as ebookers.com and nwa.com. If you have been following the 2009 NBA playoffs, you may also find it interesting Web Flow is an important component of nba.com as well.
Our Work in the Past Year
Like all Spring projects, Web Flow depends on feedback to be successful. Field interactions with customers and SpringSource support engineers have driven much of our work on 2.0.x in the last year. The community has also been exceptional at reporting bugs, contributing patches, highlighting usage scenarios, and generally discussing ways the project can continue to improve.
I'd like to quickly recap some of the concrete improvements made since 2.0.0.RELEASE:
-
Configuration simplifications and conventions for flow URL mapping
This one, applied in 2.0.5 and driven by customer feedback as well as Dan Allen's JSFOne presentation, cut the size of a typical webflow-config.xml in half, down to ~20 lines of configuration. As you can see, this was achieved by applying a wildcard-search for flow definitions in conjunction with conventions for binding flow definitions to URLs based on their flow ids.
-
Support for explicit view-state model bindings
This improvement, first provided to SpringSource customers in response to this security advisory and subsequently released in 2.0.3, allows you to restrict the set of allowed model bindings by view-state. This was achieved in the declarative style shown here.
-
Redirect-after-post improvements
One of the most useful features of Web Flow is the redirect-after-post pattern just works, which is one critical prerequisite to good back button support with controlled navigation. 2.0.5, 2.0.6 and 2.0.7 all introduced subsequent improvements to this support. The most recent improvement ensures redirect behavior is applied consistently in all scenarios, including when there is a binding or validation error. You can review the source code that controls the enforcement of this pattern in the doEnter and doResume methods of ViewState.java.
-
Support for streaming actions
The community figured out how to stream files back to a client participating in a flow. Documented support for this was overlooked in Web Flow 2.0.0 and was added in 2.0.6.
-
Type conversion improvements
Numerous improvements to the system that powers view-state model binding were applied from 2.0.2 through 2.0.6. The system provides all the unique features of Spring's DataBinder, such as support for converting elements of generic collections, with a simpler type Converter API compared to Java PropertyEditors.
In addition to these core improvements, we have seen a number interesting Web Flow integrations in the last year such as Grails 1.1, the ZK RIA framework, Terracotta, IceFaces, SpringSource's richweb training course, IntelliJ, Skyway Software, and the first Web Flow 2 book.
Where We Are Headed
We have a lot planned for the future. I will leave all the technical details for another time, but would like to summarize some of the key themes of the effort. First, Web Flow 3 will be the first release to require Java 5, as it will build on Spring Framework 3 as its foundation. Second, you can expect to see the introduction of a @Flow model that compliments Spring MVC's stateless @Controller model and allows stateful web flows to be defined as POJOs. Third, you can expect Spring JavaScript and Spring Faces, two modules that grew out of the Web Flow 2 effort, to both be promoted to top-level Spring projects. Spring JavaScript will become Spring's official Ajax integration project, and Spring Faces will become Spring's official JavaServerFaces integration project.
I look forward to meeting with many of you at SpringOne next week to discuss your experiences applying the project and our future directions!
Similar Posts
- Spring Web Flow Java One 2007 Demo
- First Grails Release Under the SpringSource Banner
- See you at SpringOne Europe!
- Spring Web Flow Bean Scopes and JSF
- Performance Improvements in STS 3.2.0





Greg Matthews says:
Added on April 21st, 2009 at 11:38 pmSWF is great but file upload support is broken in 2.0.7.
Adding enctype="multipart/form-data" to the in a JSP page makes it so that no further transitions for that flow seem to be recognised. e.g. can't navigate to the next page.
This is fairly critical. Can we get an emergency 2.0.8 release with this either fixed or documented?
Keith Donald says:
Added on April 22nd, 2009 at 8:27 amHi Greg,
We're not aware of any fileupload issues with 2.0.7. Would you mind opening a Web Flow JIRA at jira.springsource.org? If you can attach a minimal test case to reproduce that would help us reproduce and resolve any issue quickly.
Cheers,
Keith
David B says:
Added on April 22nd, 2009 at 4:12 pmNow I'm excited for the post Spring 3.0 Web Flow. Any guesstimates as to when can we expect it?
Greg Matthews says:
Added on April 23rd, 2009 at 10:53 pmHi Keith,
Created a new Jira issue to request an addition to the doco about minimum requirements for file upload.
I was mistaken about there being a problem. There is in fact, like you say, no problem with file upload in 2.0.7.
Thanks,
Greg
Caoilte says:
Added on April 26th, 2009 at 4:15 pmHave you made the flowID url parameter hideable yet?
I found other problems when I evaluated 2.0.3 for our business, but that was the kicker against it.
Debo says:
Added on May 20th, 2009 at 12:46 pmHi,
Need help in doing binding and validation for form by using webflow 2.
Could you please give me some guidelines for configuring model binding and how to write the binding in a form for a field. How to implement validation?
Thanks in advance.
Bob J says:
Added on July 29th, 2009 at 3:11 pmI really look forward to Webflow 3. The ability to define a flow via a POJO instead of XML would be very welcome indeed! Can you provide any details on a rough timeline for the first milestone release?
Deepa says:
Added on August 22nd, 2009 at 7:30 pmHi,
I am a newbie to spring webflow. When attempting to upgrade an existing project from spring webflow 1.0 to 2.0.8, we could not find any way to specify repository-type=client continuation anymore. Can you please give some guidelines on how to continue using the same in 2.0.8? If not, what other alternatives are available.
Keenly awaiting a response. Thanks in advance.
Regards,
Deepa
Odin says:
Added on October 4th, 2009 at 5:50 amHi,
First of all, thanks for a great web framework. However, I've spent quite some time searching for top level architecture documentation and found it somewhat lacking. I think it would benefit the adoption-rate of Spring Web Flow if there were good diagrams and explainations of how Spring MVC, SWF and Spring Faces fit together (and other view technologies). A thourough explaination of the life cycle would also be very nice (especially since this is a major change from SWF 1 to SWF 2).
Sincerely
Odin
Ruby says:
Added on October 26th, 2009 at 3:36 amHi Keith,
Can you please post the best practices specic to SWF 2.0 to be followed while developing an application using Webflow 2.0
Thanks in Advance
Ruby
Ramesh says:
Added on November 5th, 2009 at 10:59 pmIf some one wants to add link to particular view of a flow in the email content, then is there some standard feature the webflow supports?
max says:
Added on March 2nd, 2010 at 8:17 amHi keith
I'm trying to create a project with NetBeans 6.1 visual web pack woodstock swf 2.0.8 spring 2.5, but i fail… i donĀ“t use facelets and i can't find an example about the configutarion of web.xml and applicationContext.xml for this.
Could you help me to find a documentation about this or an example…!
thanks,
max
Joel says:
Added on April 26th, 2010 at 10:24 amKeith,
Is it even possible to use swf with standard JSF pages, or does one need to follow the facelets approach when using swf with Faces ?
Clarification on this would be quite helpful.
Thanks.
Sean says:
Added on April 26th, 2010 at 3:39 pmWe have a large project that is Spring 3 based and uses Webflow 2.09. I'm completely unable to get converters working and assume I won't be able to do so until you release Webflow 3. Any hint as to the release schedule?
Chit says:
Added on April 26th, 2010 at 11:13 pmI wan the SWF 3.0 soon …do u get that Keithy
Keith Donald (blog author) says:
Added on April 27th, 2010 at 1:59 pmSean:
We will be releasing a Web Flow 2.1 release in May that provides a current-generation version of Web Flow that fully integrates with Spring 3.0, including the Spring 3 type conversion system and expression language support. Work on this has been progressing well, and nightly builds of 2.1 will be announced this week.
Web Flow 3 will provide a next-generation version aligned with the Spring 3.1 release. Web Flow 3 work is also progressing well–we expect the first milestone to be available in June and for a final release to be available by the end of the year. Web Flow 3 will also provide compatibility with version 2 of the framework.
Keith
Sean says:
Added on April 27th, 2010 at 5:17 pmThanks for the update Keith! Great news.
Cullen Kehoe says:
Added on May 5th, 2010 at 11:46 pmKeith,
I notice that the current version of Spring Faces, 2.0.9, can be used with JSF 2.0 but keeps you from being able to use the new JSF 2.0 facelet tags. You still need the facelets 1.1.x JAR on your classpath and the entry in faces-config.xml: com.sun.facelets.FaceletViewHandler.
Will this be resolved in Spring Faces 3 so that you can make use of JSF 2.0 facelet tags?
Thanks.
Vidhu Singhal says:
Added on May 14th, 2010 at 4:22 amHi Keith,
We are working on a Spring 3.x based Web application. Recently we introduced a Web Flow in that. The transitive dependencies pulled by spring web flow (as specified in its POM) points to 2.5.6.SEC1 version of Spring instead of Spring 3.x.
I guess that is due to "Spring 3 type conversion system and expression language" support
being absent currently.
Does that mean that apart from this limitation, the current Spring Web Flow Release (2.0.9) can be used seamlessly with Spring 3.x?
Thanks
saqib mehmood says:
Added on June 28th, 2011 at 5:13 pmHi Keith,
i want simple application of spring webflow and java server faces .but for many days i am failed to do it . i am using netbeans. but i am unable to devlope any application .if you help me in this regard ,i will be thankful to you in advance.this is my email address (saqib495@hotmail.com)
saqib mehmood says:
Added on June 28th, 2011 at 5:58 pmHI Keith , please please listen me i am need of your help at any cost. i have to run spring webflow and java server faces simple application on netbean . i am need of your help at any cost .i wil be very very very thankful to you . do remember i have already spent 5 days on this topic . please please send me solution .my email is (saqib495@hotmail.com)
Naida State says:
Added on June 13th, 2012 at 12:46 amReal good visual appeal on this website , Id value it 10 10.