(Quick Reference)

webflow

Purpose

The webflow plug-in sets up Grails' support for Spring Webflow

Examples

An example web flow:

class BookController {
   …
   def shoppingCartFlow = {
       showCart {
           on("checkout").to "enterPersonalDetails"
           on("continueShopping").to "displayCatalogue"
       }
       …
       displayCatalogue {
            redirect(controller:"catalogue", action:"show")
       }
       displayInvoice()
   }
}

Description

Refer to the section on Web Flow in the Grails user guide which details how Grails' web flow support works.

Configured Spring Beans:

  • conversationManager - An instance of the org.springframework.webflow.conversation.impl.SessionBindingConversationManager that manages conversations in the session.
  • executionListenerLoader - A Web Flow org.springframework.webflow.execution.factory.StaticFlowExecutionListenerLoader that uses the hibernateConversationListener bean with flow execution events to manage the Hibernate session.
  • flowBuilderServices - An instance of the org.springframework.webflow.engine.builder.support.FlowBuilderServices class used to help the Flow engine locate services.
  • flowExecutor - An instance of the org.codehaus.groovy.grails.webflow.execution.GrailsFlowExecutorImpl that knows how to execute Grails flows based on flow execution keys.
  • flowExecutionFactory - An instance of the org.springframework.webflow.engine.impl.FlowExecutionImplFactory that constructs flow executions.
  • flowExecutionSnapshotFactory - An instance of the org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshotFactory class that is used to create flow snapshots that can be stored for resumption later on.
  • flowExecutionRepository - An instance of the org.springframework.webflow.execution.repository.impl.DefaultFlowExecutionRepository class that is used to store flows.
  • flowRegistry - An instance of the org.codehaus.groovy.grails.webflow.engine.builder.ControllerFlowRegistry class that stores persisted flows.
  • flowScopeRegistrar - An instance of the Spring Web Flow org.springframework.webflow.config.scope.ScopeRegistrar class which registers the flow scopes with the ApplicationContext so that services can be scoped using flow scopes such as flow, conversation and flash.
  • hibernateConversationListener - An instance of the Web Flow org.codehaus.groovy.grails.webflow.persistence.SessionAwareHibernateFlowExecutionListener class that manages the Hibernate session for the scope of a flow, allowing atomic use of flows.
  • viewFactoryCreator - An instance of the org.springframework.webflow.mvc.builder.MvcViewFactoryCreator class used to construct views