Class ImplicitObjectELResolver

java.lang.Object
jakarta.el.ELResolver
jakarta.servlet.jsp.el.ImplicitObjectELResolver

public class ImplicitObjectELResolver extends ELResolver
Defines variable resolution behavior for the EL implicit objects defined in the JSP specification.

The following variables are resolved by this ELResolver, as per the JSP specification:

  • pageContext - the PageContext object.
  • pageScope - a Map that maps page-scoped attribute names to their values.
  • requestScope - a Map that maps request-scoped attribute names to their values.
  • sessionScope - a Map that maps session-scoped attribute names to their values.
  • applicationScope - a Map that maps application-scoped attribute names to their values.
  • param - a Map that maps parameter names to a single String parameter value (obtained by calling ServletRequest.getParameter(String name)).
  • paramValues - a Map that maps parameter names to a String[] of all values for that parameter (obtained by calling ServletRequest.getParameterValues(String name)).
  • header - a Map that maps header names to a single String header value (obtained by calling HttpServletRequest.getHeader(String name)).
  • headerValues - a Map that maps header names to a String[] of all values for that header (obtained by calling HttpServletRequest.getHeaders(String)).
  • cookie - a Map that maps cookie names to a single Cookie object. Cookies are retrieved according to the semantics of HttpServletRequest.getCookies(). If the same name is shared by multiple cookies, an implementation must use the first one encountered in the array of Cookie objects returned by the getCookies() method. However, users of the cookie implicit object must be aware that the ordering of cookies is currently unspecified in the servlet specification.
  • initParam - a Map that maps context initialization parameter names to their String parameter value (obtained by calling ServletContext.getInitParameter(String name)).
Since:
JSP 2.1
See Also:
  • Constructor Details

    • ImplicitObjectELResolver

      public ImplicitObjectELResolver()
  • Method Details

    • getValue

      public Object getValue(ELContext context, Object base, Object property)
      If the base object is null, and the property matches the name of a JSP implicit object, returns the implicit object.

      The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value.

      Specified by:
      getValue in class ELResolver
      Parameters:
      context - The context of this evaluation.
      base - Only null is handled by this resolver. Other values will result in an immediate return.
      property - The name of the implicit object to resolve.
      Returns:
      If the propertyResolved property of ELContext was set to true, then the implicit object; otherwise undefined.
      Throws:
      NullPointerException - if context is null
    • getType

      public Class<?> getType(ELContext context, Object base, Object property)
      If the base object is null, and the property matches the name of a JSP implicit object, returns null to indicate that no types are ever accepted to setValue().

      The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value.

      Specified by:
      getType in class ELResolver
      Parameters:
      context - The context of this evaluation.
      base - Only null is handled by this resolver. Other values will result in an immediate return.
      property - The name of the implicit object to resolve.
      Returns:
      If the propertyResolved property of ELContext was set to true, then null; otherwise undefined.
      Throws:
      NullPointerException - if context is null
    • setValue

      public void setValue(ELContext context, Object base, Object property, Object val)
      If the base object is null, and the property matches the name of a JSP implicit object, throws PropertyNotWritableException to indicate that implicit objects cannot be overwritten.

      The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value.

      Specified by:
      setValue in class ELResolver
      Parameters:
      context - The context of this evaluation.
      base - Only null is handled by this resolver. Other values will result in an immediate return.
      property - The name of the implicit object.
      val - The value to be associated with the implicit object.
      Throws:
      NullPointerException - if context is null.
      PropertyNotWritableException - always thrown, if the implicit object name is recognized by this resolver.
    • isReadOnly

      public boolean isReadOnly(ELContext context, Object base, Object property)
      If the base object is null, and the property matches the name of a JSP implicit object, returns true to indicate that implicit objects cannot be overwritten.

      The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value.

      Specified by:
      isReadOnly in class ELResolver
      Parameters:
      context - The context of this evaluation.
      base - Only null is handled by this resolver. Other values will result in an immediate return.
      property - The name of the implicit object.
      Returns:
      If the propertyResolved property of ELContext was set to true, then true; otherwise undefined.
      Throws:
      NullPointerException - if context is null.
    • getFeatureDescriptors

      public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base)
      If the base object is null, and the property matches the name of a JSP implicit object, returns an Iterator containing FeatureDescriptor objects with information about each JSP implicit object resolved by this resolver. Otherwise, returns null.

      The Iterator returned must contain one instance of FeatureDescriptor for each of the EL implicit objects defined by the JSP spec. Each info object contains information about a single implicit object, and is initialized as follows:

      displayName
      - The name of the implicit object.
      name
      - Same as displayName property.
      shortDescription
      - A suitable description for the implicit object. Will vary by implementation.
      expert
      - false
      hidden
      - false
      preferred
      - true
      In addition, the following named attributes must be set in the returned FeatureDescriptors:
      ELResolver.TYPE
      - The runtime type of the implicit object.
      ELResolver.RESOLVABLE_AT_DESIGN_TIME
      - true.
      Specified by:
      getFeatureDescriptors in class ELResolver
      Parameters:
      context - The context of this evaluation.
      base - Only null is handled by this resolver. Other values will result in a null return value.
      Returns:
      An Iterator containing one FeatureDescriptor object for each implicit object, or null if base is not null.
      See Also:
    • getCommonPropertyType

      public Class<String> getCommonPropertyType(ELContext context, Object base)
      If the base object is null, returns String.class. Otherwise, returns null.
      Specified by:
      getCommonPropertyType in class ELResolver
      Parameters:
      context - The context of this evaluation.
      base - Only null is handled by this resolver. Other values will result in a null return value.
      Returns:
      null if base is not null; otherwise String.class.