Spring Web Flow Reference Guide

Keith Donald

Erwin Vervaet

Jeremy Grelle

Scott Andrews

Rossen Stoyanchev

Spring Web Flow

Version 2.1.0

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

Preface
1. Introduction
1.1. What this guide covers
1.2. What Web Flow requires to run
1.3. Where to get support
1.4. Where to follow development
1.5. How to access Web Flow artifacts from Maven Central
1.6. How to access Web Flow artifacts from the SpringSource Bundle Repository
1.7. How to access nightly builds
2. What's New In Spring Web Flow 2.1
2.1. Version Upgrades
2.2. Spring 3 Changes
2.3. Tiles Updates
3. Defining Flows
3.1. Introduction
3.2. What is a flow?
3.3. What is the makeup of a typical flow?
3.4. How are flows authored?
3.5. Essential language elements
3.6. Actions
3.7. Input/Output Mapping
3.8. Variables
3.9. Calling subflows
4. Expression Language (EL)
4.1. Introduction
4.2. EL Implementations
4.3. EL portability
4.4. Special EL variables
4.5. Scope searching algorithm
5. Rendering views
5.1. Introduction
5.2. Defining view states
5.3. Specifying view identifiers
5.4. View scope
5.5. Executing render actions
5.6. Binding to a model
5.7. Performing type conversion
5.8. Suppressing binding
5.9. Specifying bindings explicitly
5.10. Validating a model
5.11. Suppressing validation
5.12. Executing view transitions
5.13. Working with messages
5.14. Displaying popups
5.15. View backtracking
6. Executing actions
6.1. Introduction
6.2. Defining action states
6.3. Defining decision states
6.4. Action outcome event mappings
6.5. Action implementations
6.6. Action exceptions
6.7. Other Action execution examples
7. Flow Managed Persistence
7.1. Introduction
7.2. FlowScoped PersistenceContext
8. Securing Flows
8.1. Introduction
8.2. How do I secure a flow?
8.3. The secured element
8.4. The SecurityFlowExecutionListener
8.5. Configuring Spring Security
9. Flow Inheritance
9.1. Introduction
9.2. Is flow inheritance like Java inheritance?
9.3. Types of Flow Inheritance
9.4. Abstract flows
9.5. Inheritance Algorithm
10. System Setup
10.1. Introduction
10.2. webflow-config.xsd
10.3. Basic system configuration
10.4. flow-registry options
10.5. flow-executor options
11. Spring MVC Integration
11.1. Introduction
11.2. Configuring web.xml
11.3. Dispatching to flows
11.4. Implementing custom FlowHandlers
11.5. View Resolution
11.6. Signaling an event from a View
12. Spring JavaScript Quick Reference
12.1. Introduction
12.2. Serving Javascript Resources
12.3. Including Spring Javascript in a Page
12.4. Spring Javascript Decorations
12.5. Handling Ajax Requests
13. JSF Integration
13.1. Introduction
13.2. JSF Integration For Spring Developers
13.3. Configuring web.xml
13.4. Configuring Web Flow to render JSF views
13.5. Configuring faces-config.xml
13.6. Replacing the JSF Managed Bean Facility
13.7. Handling JSF Events With Spring Web Flow
13.8. Enhancing The User Experience With Rich Web Forms
13.9. Third-Party Component Library Integration
14. Portlet Integration
14.1. Introduction
14.2. Configuring web.xml and portlet.xml
14.3. Configuring Spring
14.4. Portlet Views
14.5. Portlet Modes and Window States
14.6. Issues in a Portlet Environment
15. Testing flows
15.1. Introduction
15.2. Extending AbstractXmlFlowExecutionTests
15.3. Specifying the path to the flow to test
15.4. Registering flow dependencies
15.5. Testing flow startup
15.6. Testing flow event handling
15.7. Mocking a subflow
16. Upgrading from 1.0
16.1. Introduction
16.2. Flow Definition Language
16.3. Web Flow Configuration
16.4. New Web Flow Concepts
A. Flow Definition Language 1.0 to 2.0 Mappings