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