org.springframework.web.jsf.el

## Class SpringBeanFacesELResolver

- java.lang.Object
- - javax.el.ELResolver
  - - org.springframework.web.jsf.el.SpringBeanFacesELResolver

-     public class SpringBeanFacesELResolver
      extends ELResolver

  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 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
    --- | ---
    `Class<?>` | `getCommonPropertyType(ELContext elContext, Object base)`
    `Iterator<FeatureDescriptor>` | `getFeatureDescriptors(ELContext elContext, Object base)`
    `Class<?>` | `getType(ELContext elContext, Object base, Object property)`
    `Object` | `getValue(ELContext elContext, Object base, Object property)`
    `protected WebApplicationContext` | `getWebApplicationContext(ELContext elContext)` Retrieve the web application context to delegate bean name resolution to.
    `boolean` | `isReadOnly(ELContext elContext, Object base, Object property)`
    `void` | `setValue(ELContext elContext, Object base, Object property, Object value)`

    - ### Methods inherited from class javax.el.ELResolver

      `convertToType, 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

    - #### getValue

          @Nullable
          public Object getValue(ELContext elContext,
                                           @Nullable
                                           Object base,
                                           Object property)
                                    throws ELException

      Specified by:
        `getValue` in class `ELResolver`
      Throws:
        `ELException`

    - #### getType

          @Nullable
          public Class<?> getType(ELContext elContext,
                                            @Nullable
                                            Object base,
                                            Object property)
                                     throws ELException

      Specified by:
        `getType` in class `ELResolver`
      Throws:
        `ELException`

    - #### setValue

          public void setValue(ELContext elContext,
                               @Nullable
                               Object base,
                               Object property,
                               Object value)
                        throws ELException

      Specified by:
        `setValue` in class `ELResolver`
      Throws:
        `ELException`

    - #### isReadOnly

          public boolean isReadOnly(ELContext elContext,
                                    @Nullable
                                    Object base,
                                    Object property)
                             throws ELException

      Specified by:
        `isReadOnly` in class `ELResolver`
      Throws:
        `ELException`

    - #### getFeatureDescriptors

          @Nullable
          public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext elContext,
                                                                             @Nullable
                                                                             Object base)

      Specified by:
        `getFeatureDescriptors` in class `ELResolver`

    - #### getCommonPropertyType

          public Class<?> getCommonPropertyType(ELContext elContext,
                                                @Nullable
                                                Object base)

      Specified by:
        `getCommonPropertyType` in class `ELResolver`

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