public class

DelegatingPhaseListenerMulticaster

extends Object
java.lang.Object
   ↳ org.springframework.web.jsf.DelegatingPhaseListenerMulticaster

Class Overview

JSF PhaseListener implementation that delegates to one or more Spring-managed PhaseListener beans coming from the Spring root WebApplicationContext.

Configure this listener multicaster in your faces-config.xml file as follows:

 <application>
   ...
   <phase-listener>
     org.springframework.web.jsf.DelegatingPhaseListenerMulticaster
   </phase-listener>
   ...
 </application>
The multicaster will delegate all beforePhase and afterPhase events to all target PhaseListener beans. By default, those will simply be obtained by type: All beans in the Spring root WebApplicationContext that implement the PhaseListener interface will be fetched and invoked.

Note: This multicaster's getPhaseId() method will always return ANY_PHASE. The phase id exposed by the target listener beans will be ignored; all events will be propagated to all listeners.

This multicaster may be subclassed to change the strategy used to obtain the listener beans, or to change the strategy used to access the ApplicationContext (normally obtained via getWebApplicationContext(FacesContext)).

Summary

Public Constructors
DelegatingPhaseListenerMulticaster()
Public Methods
void afterPhase(PhaseEvent event)
void beforePhase(PhaseEvent event)
PhaseId getPhaseId()
Protected Methods
ListableBeanFactory getBeanFactory(FacesContext facesContext)
Retrieve the Spring BeanFactory to delegate bean name resolution to.
Collection<PhaseListener> getDelegates(FacesContext facesContext)
Obtain the delegate PhaseListener beans from the Spring root WebApplicationContext.
WebApplicationContext getWebApplicationContext(FacesContext facesContext)
Retrieve the web application context to delegate bean name resolution to.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public DelegatingPhaseListenerMulticaster ()

Public Methods

public void afterPhase (PhaseEvent event)

public void beforePhase (PhaseEvent event)

public PhaseId getPhaseId ()

Protected Methods

protected ListableBeanFactory getBeanFactory (FacesContext facesContext)

Retrieve the Spring BeanFactory to delegate bean name resolution to.

The default implementation delegates to getWebApplicationContext. Can be overridden to provide an arbitrary ListableBeanFactory reference to resolve against; usually, this will be a full Spring ApplicationContext.

Parameters
facesContext the current JSF context
Returns
  • the Spring ListableBeanFactory (never null)

protected Collection<PhaseListener> getDelegates (FacesContext facesContext)

Obtain the delegate PhaseListener beans from the Spring root WebApplicationContext.

Parameters
facesContext the current JSF context
Returns
  • a Collection of PhaseListener objects

protected WebApplicationContext getWebApplicationContext (FacesContext facesContext)

Retrieve the web application context to delegate bean name resolution to.

The default implementation delegates to FacesContextUtils.

Parameters
facesContext the current JSF context
Returns
  • the Spring web application context (never null)