public abstract class NavigationHandler
extends java.lang.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 Jakarta Server Faces
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,
java.lang.String fromAction,
java.lang.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,
java.lang.String fromAction,
java.lang.String outcome,
java.lang.String toFlowDocumentId)
Overloaded variant of
|
public abstract void handleNavigation(FacesContext context, java.lang.String fromAction, java.lang.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
)java.lang.NullPointerException
- if context
is null
public void handleNavigation(FacesContext context, java.lang.String fromAction, java.lang.String outcome, java.lang.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.java.lang.NullPointerException
- if context
is null