Spring MVC and Spring WebFlow as a Primary Framework
If you are building a major Web application from scratch, Spring's Web offerings (Spring MVC and Spring WebFlow) are a very strong choice. Spring MVC
is simple and intuitive, and as you would expect, it integrates perfectly with the rest of Spring's managed components. On the other hand, the upcoming Spring WebFlow promises to deliver sophisticated and innovative features that will enable you to develop reusable and highly structured Web applications. These are very important qualities if you are developing large-scale enterprise applications. These same qualities have made the Struts framework popular.
Overall, J2EE Web frameworks are in a state of flux, having no clear technology leader. Struts is the most popular Web framework, but its chief architect and one of its lead developers have abandoned it. The proclaimed successor specification, JSF (Java Server Faces), has yet to win the hearts and minds of Struts developers. In the meantime, other frameworks are gaining respect and popularity.
You may be asking, "which way should I go?" With Spring WebFlow, you can defer that decision until you feel comfortable with one technology. WebFlow allows you to switch frameworks without any major impact on your Web applications. As previously noted, Spring WebFlow is an abstraction framework that lets you focus on logical flows within your Web application and on reuse. It makes frameworks such as Struts, JSF, and Spring MVC replaceable implementations of logical Web flows. This greatly eases the commitment of your technology choices.