public abstract class NavigationHandler extends Object
A NavigationHandler is passed the outcome string returned by an application action invoked for this application, and will use this (along with related state information) to choose the view to be displayed next.
A default implementation of NavigationHandler
must be
provided by the JSF implementation, which will be utilized unless
setNavigationHandler()
is called to establish a different one.
An implementation
of this class must be thread-safe.
This default instance will compare the view identifier of the current
view, the specified action binding, and the specified outcome against
any navigation rules provided in faces-config.xml
file(s).
If a navigation case matches, the current view will be changed by a call
to FacesContext.setViewRoot()
. Note that a null
outcome value will never match any navigation rule, so it can be used as an
indicator that the current view should be redisplayed.
Constructor and Description |
---|
NavigationHandler() |
Modifier and Type | Method and Description |
---|---|
abstract void |
handleNavigation(FacesContext context,
String fromAction,
String outcome)
Perform navigation
processing based on the state information in the specified
FacesContext , plus the outcome string returned by an executed
application action. |
void |
handleNavigation(FacesContext context,
String fromAction,
String outcome,
String toFlowDocumentId)
Overloaded variant of |
public abstract void handleNavigation(FacesContext context, String fromAction, String outcome)
Perform navigation
processing based on the state information in the specified FacesContext
, plus the outcome string returned by an executed
application action.
If the implementation class also
extends ConfigurableNavigationHandler
, the implementation
must guarantee that the logic used in a call to ConfigurableNavigationHandler.getNavigationCase(javax.faces.context.FacesContext, java.lang.String, java.lang.String)
is used in this
method to determine the correct navigation.
This method must set the render targets
(used in partial rendering) to render all
invoking PartialViewContext.setRenderAll(boolean)
)
if the view identifier has changed as the result of an application
action (to take into account Ajax requests
).
context
- The FacesContext
for the current requestfromAction
- The action binding expression that was evaluated
to retrieve the specified outcome, or null
if the
outcome was acquired by some other meansoutcome
- The logical outcome returned by a previous invoked
application action (which may be null
)NullPointerException
- if context
is null
public void handleNavigation(FacesContext context, String fromAction, String outcome, String toFlowDocumentId)
Overloaded variant of handleNavigation(javax.faces.context.FacesContext, java.lang.String, java.lang.String)
that allows the caller to provide the defining document id for a flow
to be entered by this navigation. For backward compatibility with
decorated NavigationHandler
implementations that conform to an
earlier version of the specification, an implementation is provided that
calls through to handleNavigation(javax.faces.context.FacesContext, java.lang.String, java.lang.String)
,
ignoring the toFlowDocumentId
parameter.
context
- The FacesContext
for the current requestfromAction
- The action binding expression that was evaluated
to retrieve the specified outcome, or null
if the
outcome was acquired by some other meansoutcome
- The logical outcome returned by a previous invoked
application action (which may be null
)toFlowDocumentId
- The defining document id of the flow into which
this navigation will cause entry.NullPointerException
- if context
is null
Copyright © 1996-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.