# Class JasperELResolver

java.lang.Object
jakarta.el.ELResolver
jakarta.el.CompositeELResolver
org.apache.jasper.el.JasperELResolver

public class JasperELResolver extends CompositeELResolver
Jasper-specific CompositeELResolver that optimizes certain functions to avoid unnecessary resolver calls.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `JasperELResolver.GraalBeanELResolver`
  Extend ELResolver for Graal to avoid bean info use if possible, as BeanELResolver needs manual reflection configuration.

- ## Field Summary

  ### Fields inherited from class ELResolver

  `RESOLVABLE_AT_DESIGN_TIME, TYPE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JasperELResolver(List<ELResolver> appResolvers, ELResolver streamResolver)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(ELResolver elResolver)`
  `Object`
  `getValue(ELContext context, Object base, Object property)`
  Obtain the value of the given property on the given object using the given context.
  `Object`
  `invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)`
  Invokes a method on the the given object.

  ### Methods inherited from class CompositeELResolver

  `convertToType, getCommonPropertyType, getFeatureDescriptors, getType, isReadOnly, setValue`

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### JasperELResolver

    public JasperELResolver(List<ELResolver> appResolvers, ELResolver streamResolver)

- ## Method Details

  - ### add

    public void add(ELResolver elResolver)
    Overrides:
      `add` in class `CompositeELResolver`

  - ### getValue

    public Object getValue(ELContext context, Object base, Object property) throws NullPointerException, PropertyNotFoundException, ELException
    Description copied from class: `jakarta.el.ELResolver`
    Obtain the value of the given property on the given object using the given context.
    Overrides:
      `getValue` in class `CompositeELResolver`
    Parameters:
      `context` - The EL context for this evaluation
      `base` - The base object on which the property is to be found
      `property` - The property whose value is to be returned
    Returns:
      the value of the provided property
    Throws:
      `NullPointerException` - If the supplied context is `null`
      `PropertyNotFoundException` - If the base/property combination provided to the resolver is one that the resolver can handle but no match was found or a match was found but was not readable
      `ELException` - Wraps any exception throw whilst resolving the property

  - ### invoke

    public Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)
    Description copied from class: `jakarta.el.ELResolver`
    Invokes a method on the the given object.
    Overrides:
      `invoke` in class `CompositeELResolver`
    Parameters:
      `context` - The EL context for this evaluation
      `base` - The base object on which the method is to be found
      `method` - The method to invoke
      `paramTypes` - The types of the parameters of the method to invoke
      `params` - The parameters with which to invoke the method
    Returns:
      This default implementation always returns `null`