javax.faces.application
Class NavigationHandler

java.lang.Object
  extended by javax.faces.application.NavigationHandler
Direct Known Subclasses:
ConfigurableNavigationHandler

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
NavigationHandler()
           
 
Method Summary
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.
 
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


Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.