org.springframework.web.jsf.el

## Class SpringBeanFacesELResolver

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

-     public class SpringBeanFacesELResolver
      extends SpringBeanELResolver

  JSF `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

    Constructors
    Constructor and Description
    `SpringBeanFacesELResolver()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected BeanFactory` | `getBeanFactory(ELContext elContext)` This implementation delegates to `getWebApplicationContext(javax.el.ELContext)`.
    `protected WebApplicationContext` | `getWebApplicationContext(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 javax.el.ELResolver

      `invoke`

    - ### 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(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(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)`