org.springframework.web.jsf.el

## Class WebApplicationContextFacesELResolver

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

-     public class WebApplicationContextFacesELResolver
      extends ELResolver

  Special JSF 1.2 `ELResolver` that exposes the Spring `WebApplicationContext` instance under a variable named "webApplicationContext".

  In contrast to `SpringBeanFacesELResolver`, this ELResolver variant does not resolve JSF variable names as Spring bean names. It rather exposes Spring's root WebApplicationContext itself under a special name, and is able to resolve "webApplicationContext.mySpringManagedBusinessObject" dereferences to Spring-defined beans in that application context.

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

       <application>
         ...
         <el-resolver>org.springframework.web.jsf.el.WebApplicationContextFacesELResolver</el-resolver>
       </application>

  Since:
    2.5
  Author:
    Juergen Hoeller
  See Also:
    `SpringBeanFacesELResolver`, `FacesContextUtils.getWebApplicationContext(javax.faces.context.FacesContext)`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Log` | `logger` Logger available to subclasses
    `static String` | `WEB_APPLICATION_CONTEXT_VARIABLE_NAME` Name of the exposed WebApplicationContext variable: "webApplicationContext".

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

      `RESOLVABLE_AT_DESIGN_TIME, TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WebApplicationContextFacesELResolver()`

  - ### Method Summary

    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 WebApplicationContext reference to expose.
    `boolean` | `isReadOnly(ELContext elContext, Object base, Object property)`
    `void` | `setValue(ELContext elContext, Object base, Object property, Object value)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### WEB_APPLICATION_CONTEXT_VARIABLE_NAME

          public static final String WEB_APPLICATION_CONTEXT_VARIABLE_NAME

      Name of the exposed WebApplicationContext variable: "webApplicationContext".
      See Also:
        Constant Field Values

    - #### logger

          protected final Log logger

      Logger available to subclasses

  - ### Constructor Detail

    - #### WebApplicationContextFacesELResolver

          public WebApplicationContextFacesELResolver()

  - ### Method Detail

    - #### getValue

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

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

    - #### getType

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

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

    - #### setValue

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

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

    - #### isReadOnly

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

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

    - #### getFeatureDescriptors

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

      Specified by:
        `getFeatureDescriptors` in class `ELResolver`

    - #### getCommonPropertyType

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

      Specified by:
        `getCommonPropertyType` in class `ELResolver`

    - #### getWebApplicationContext

          protected WebApplicationContext getWebApplicationContext(ELContext elContext)

      Retrieve the WebApplicationContext reference to expose.

      The default implementation delegates to FacesContextUtils, returning `null` if no WebApplicationContext found.

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