JSF Extensions brings first class support for AJAX to JSF. This is
achieved by declaring an override for the
javax.faces.ViewRoot component-type. The
implementation for this class extends UIViewRoot and allows
for lifecycle processing over one or more subtrees of the view,
depending on client requirements. Custom JSF Lifecycle and
StateManager implementations are provided to support the
UIViewRoot subclass in its processing. These decorate
their respectieve default implementations and add a small amount of
functionality to support AJAX.
The principal classes for supporting AJAX include:
{@link com.sun.faces.extensions.avatar.components.PartialTraversalViewRoot}
Extend UIViewRoot and allow for partial view processing.
{@link com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle}
Decorate the default lifecycle and take special case action when an AJAX request is detected. Otherwise, the default lifecycle is used.
{@link com.sun.faces.extensions.avatar.lifecycle.AsyncResponse}
ThreadLocal accessible class for interacting with the AJAX response as it is being created.
Decorate the default StateManager to take no action
during an AJAX request. This is necessary because the state saving is
initiated in the PartialTraversalLifecycle.
{@link com.sun.faces.extensions.avatar.event.EventCallback}
javax.faces.components.ContextCallback implementation
that allows the client to send events to the JSF view.
{@link com.sun.faces.extensions.avatar.components.ScriptsComponent}
Renders necessary script elements in the browser. Exposed via custom tag.