javax.faces.application

## Class NavigationHandler

- java.lang.Object
- - javax.faces.application.NavigationHandler

- Direct Known Subclasses:
    ConfigurableNavigationHandler, NavigationHandlerWrapper

      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 Summary

    Constructors
    Constructor and Description
    `NavigationHandler()`

  - ### Method Summary

    Methods
    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 `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### NavigationHandler

          public NavigationHandler()

  - ### Method Detail

    - #### handleNavigation

          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`).

      Parameters:
        `context` - The `FacesContext` for the current request
        `fromAction` - The action binding expression that was evaluated to retrieve the specified outcome, or `null` if the outcome was acquired by some other means
        `outcome` - The logical outcome returned by a previous invoked application action (which may be `null`)
      Throws:
        `NullPointerException` - if `context` is `null`

    - #### handleNavigation

          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.

      Parameters:
        `context` - The `FacesContext` for the current request
        `fromAction` - The action binding expression that was evaluated to retrieve the specified outcome, or `null` if the outcome was acquired by some other means
        `outcome` - 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.
      Throws:
        `NullPointerException` - if `context` is `null`

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.