## 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
`ImplicitObjectELResolver()`

Method Summary
`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 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 © 2007 Mort Bay Consulting. All Rights Reserved.