Package org.springframework.web.jsf.el

# Class SpringBeanFacesELResolver

java.lang.Object
jakarta.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(jakarta.faces.context.FacesContext)`

## Field Summary

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

`RESOLVABLE_AT_DESIGN_TIME, TYPE`

## Constructor Summary

Constructors
Constructor
Description
`SpringBeanFacesELResolver()`

## 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 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 jakarta.el.ELResolver

`convertToType, invoke`

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

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

## Constructor Details

### SpringBeanFacesELResolver

public SpringBeanFacesELResolver()

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