org.springframework.web.jsf.el
Class SpringBeanFacesELResolver

java.lang.Object
  extended by javax.el.ELResolver
      extended by org.springframework.beans.factory.access.el.SpringBeanELResolver
          extended by org.springframework.web.jsf.el.SpringBeanFacesELResolver

public class SpringBeanFacesELResolver
extends SpringBeanELResolver

JSF 1.2 ELResolver that delegates to the Spring root WebApplicationContext, resolving name references to Spring-defined beans.

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

 <application>
   ...
   <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
 </application>
All your JSF expressions can then implicitly refer to the names of Spring-managed service layer beans, for example in property values of JSF-managed beans:
 <managed-bean>
   <managed-bean-name>myJsfManagedBean</managed-bean-name>
   <managed-bean-class>example.MyJsfManagedBean</managed-bean-class>
   <managed-bean-scope>session</managed-bean-scope>
   <managed-property>
     <property-name>mySpringManagedBusinessObject</property-name>
     <value>#{mySpringManagedBusinessObject}</value>
   </managed-property>
 </managed-bean>
with "mySpringManagedBusinessObject" defined as Spring bean in applicationContext.xml:
 <bean id="mySpringManagedBusinessObject" class="example.MySpringManagedBusinessObject">
   ...
 </bean>

Since:
2.5
Author:
Juergen Hoeller
See Also:
WebApplicationContextFacesELResolver, FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)

Field Summary
 
Fields inherited from class org.springframework.beans.factory.access.el.SpringBeanELResolver
logger
 
Fields inherited from class javax.el.ELResolver
RESOLVABLE_AT_DESIGN_TIME, TYPE
 
Constructor Summary
SpringBeanFacesELResolver()
           
 
Method Summary
protected  BeanFactory getBeanFactory(javax.el.ELContext elContext)
          This implementation delegates to getWebApplicationContext(javax.el.ELContext).
protected  WebApplicationContext getWebApplicationContext(javax.el.ELContext elContext)
          Retrieve the web application context to delegate bean name resolution to.
 
Methods inherited from class org.springframework.beans.factory.access.el.SpringBeanELResolver
getCommonPropertyType, getFeatureDescriptors, getType, getValue, isReadOnly, setValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpringBeanFacesELResolver

public SpringBeanFacesELResolver()
Method Detail

getBeanFactory

protected BeanFactory getBeanFactory(javax.el.ELContext elContext)
This implementation delegates to getWebApplicationContext(javax.el.ELContext). Can be overridden to provide an arbitrary BeanFactory reference to resolve against; usually, this will be a full Spring ApplicationContext.

Specified by:
getBeanFactory in class SpringBeanELResolver
Parameters:
elContext - the current JSF ELContext
Returns:
the Spring BeanFactory (never null)

getWebApplicationContext

protected WebApplicationContext getWebApplicationContext(javax.el.ELContext elContext)
Retrieve the web application context to delegate bean name resolution to.

The default implementation delegates to FacesContextUtils.

Parameters:
elContext - the current JSF ELContext
Returns:
the Spring web application context (never null)
See Also:
FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)