javax.servlet.jsp.el

## Class ImplicitObjectELResolver

- java.lang.Object
- - javax.el.ELResolver
  - - javax.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:
    `ELResolver`

- - ### Field Summary

    - ### Fields inherited from class javax.el.ELResolver

      `RESOLVABLE_AT_DESIGN_TIME, TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ImplicitObjectELResolver()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Class<String>` | `getCommonPropertyType(ELContext context, Object base)` If the base object is `null`, returns `String.class`.
    `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.
    `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()`.
    `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.
    `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.
    `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.

    - ### Methods inherited from class javax.el.ELResolver

      `convertToType, invoke`

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

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

- - ### Constructor Detail

    - #### ImplicitObjectELResolver

          public ImplicitObjectELResolver()

  - ### Method Detail

    - #### 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`
        `ELException` - if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.

    - #### 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`
        `ELException` - if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.

    - #### 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.
        `ELException` - if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.

    - #### 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`.
        `ELException` - if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.

    - #### 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 `FeatureDescriptor`s:
    - `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:
  `FeatureDescriptor`

- #### 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`.

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.