Package org.springframework.web.jsf.el

# Class WebApplicationContextFacesELResolver

java.lang.Object
jakarta.el.ELResolver
org.springframework.web.jsf.el.WebApplicationContextFacesELResolver

public class WebApplicationContextFacesELResolver extends ELResolver
Special JSF `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(jakarta.faces.context.FacesContext)`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.apache.commons.logging.Log`
`logger`
Logger available to subclasses.
`static final String`
`WEB_APPLICATION_CONTEXT_VARIABLE_NAME`
Name of the exposed WebApplicationContext variable: "webApplicationContext".

### Fields inherited from class jakarta.el.ELResolver

`RESOLVABLE_AT_DESIGN_TIME, TYPE`

## Constructor Summary

Constructors
Constructor
Description
`WebApplicationContextFacesELResolver()`

## Method Summary

Modifier and Type
Method
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 jakarta.el.ELResolver

`convertToType, invoke`

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

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

## Field Details

### 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 org.apache.commons.logging.Log logger
Logger available to subclasses.

## Constructor Details

### WebApplicationContextFacesELResolver

public WebApplicationContextFacesELResolver()

## Method Details

### 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, 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

@Nullable 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

@Nullable 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(jakarta.faces.context.FacesContext)`