JSF Integration For Spring Developers

Spring Web Flow complements the strengths of JSF, its component model, and provides more sophisticated state management and navigation. In addition you have the ability to use Spring MVC @Controller or flow definitions as controllers in the web layer.

JSF applications using Spring Web Flow applications gain benefits in the following areas:

  1. Managed bean facility

  2. Scope management

  3. Event handling

  4. Navigation

  5. Modularization and packaging of views

  6. Cleaner URLs

  7. Model-level validation

  8. Progressivy-enhancement sytle client-side validation

  9. Progressive-enhancement style Ajax requests with partial page updates

Using these features significantly reduce the amount of configuration required in faces-config.xml. They provide a cleaner separation between the view and controller layers along with better modularization of application functionals. These features are detailed in the sections to follow. The majority of these features build on the flow definition language of Spring Web Flow. Therefore it is assumed that you have an understanding of the foundations presented in Chapter 3, Defining Flows.