| org.springframework.webflow.executor.jsf.FlowNavigationHandler
FlowNavigationHandler | public class FlowNavigationHandler extends DecoratingNavigationHandler (Code) | | An implementation of a JSF NavigationHandler that provides integration with Spring Web Flow.
Responsible for delegating to Spring Web Flow to launch and resume flow executions, treating JSF action outcomes
(like a command button click) as web flow events.
This class delegates to the standard NavigationHandler implementation when a navigation request does not pertain to a
flow execution.
The following navigation handler algorithm is implemented by default:
If a flow execution has been restored in the current request:
- Resume the flow execution by signaling the JSF action outcome as an event against the current state.
- Once event processing completes expose the selected view as the "current"
ViewSelection .
If a flow execution has not been restored in the current request:
- If the specified logical outcome is of the form flowId:xxx look up the corresponding
FlowDefinition with that id and launch a new flow execution in the starting state. Expose the new execution
as the "current" flow execution for this request. Expose the first selected view as the "current" view selection.
- If the specified logical outcome is not of the form flowId:xxx, simply delegate to the standard
NavigationHandler implementation and return.
How the flowId and eventId arguments are extracted can be customized by setting a custom
FlowNavigationHandler.setArgumentExtractor(FlowExecutorArgumentExtractor) argument extractor .
Note about customization: since NavigationHandlers managed directly by the JSF provider cannot be benefit from
DependencyInjection, See Spring's
org.springframework.web.jsf.DelegatingNavigationHandlerProxy when you need
to customize a FlowNavigationHandler instance.
author: Craig McClanahan author: Colin Sampaleanu author: Keith Donald |
Field Summary | |
final protected Log | logger Logger, usable by subclasses. |
logger | final protected Log logger(Code) | | Logger, usable by subclasses.
|
FlowNavigationHandler | public FlowNavigationHandler(NavigationHandler originalNavigationHandler)(Code) | | Create a new
FlowNavigationHandler , wrapping the specified standard navigation handler implementation.
Parameters: originalNavigationHandler - Standard NavigationHandler we are wrapping |
createInput | protected MutableAttributeMap createInput(ExternalContext context)(Code) | | Factory method that creates the input attribute map for a newly created
FlowExecution . This
implementation uses the registered input mapper, if any.
Parameters: context - the external context the input map, or null if no input |
getInputMapper | public AttributeMapper getInputMapper()(Code) | | Returns the configured flow execution input mapper.
|
handleNavigation | public void handleNavigation(FacesContext facesContext, String fromAction, String outcome, NavigationHandler originalNavigationHandler)(Code) | | |
setArgumentExtractor | public void setArgumentExtractor(FlowExecutorArgumentExtractor argumentExtractor)(Code) | | Sets the argument extractor to use by this navigation handler. Call to customize how flow id and event id
arguments are extracted.
|
|
|