java.lang.Objectjavax.el.ELResolver
Direct Known Subclasses:
ImplicitObjectELResolver, BeanELResolver, MapELResolver, ListELResolver, ResourceBundleELResolver, CompositeELResolver, ScopedAttributeELResolver, ArrayELResolver
While evaluating an expression, the ELResolver associated
with the ELContext is consulted to do the initial resolution of
the first variable of an expression. It is also consulted when a
. or [] operator is encountered, except for the
last such operator in a method expression, in which case the resultion
rules are hard coded.
For example, in the EL expression ${employee.lastName},
the ELResolver determines what object employee
refers to, and what it means to get the lastName property on
that object.
Most methods in this class accept a base
and property parameter. In the case of variable resolution
(e.g. determining what employee refers to in
${employee.lastName}), the base parameter will
be null and the property parameter will always
be of type String. In this case, if the property
is not a String, the behavior of the ELResolver
is undefined.
In the case of property resolution, the base parameter
identifies the base object and the property object identifies
the property on that base. For example, in the expression
${employee.lastName}, base is the result of the
variable resolution for employee and property
is the string "lastName". In the expression
${y[x]}, base is the result of the variable
resolution for y and property is the result of
the variable resolution for x.
Though only a single ELResolver is associated with an
ELContext, there are usually multiple resolvers considered
for any given variable or property resolution. ELResolvers
are combined together using CompositeELResolver s, to define
rich semantics for evaluating an expression.
For the #getValue , #getType , #setValue and
#isReadOnly methods, an ELResolver is not
responsible for resolving all possible (base, property) pairs. In fact,
most resolvers will only handle a base of a single type.
To indicate that a resolver has successfully resolved a particular
(base, property) pair, it must set the propertyResolved
property of the ELContext to true. If it could
not handle the given pair, it must leave this property alone. The caller
must ignore the return value of the method if propertyResolved
is false.
The #getFeatureDescriptors and #getCommonPropertyType methods are primarily designed for design-time tool support, but must handle invocation at runtime as well. The java.beans.Beans#isDesignTime method can be used to determine if the resolver is being consulted at design-time or runtime.
JSP - 2.1| Field Summary | ||
|---|---|---|
| public static final String | TYPE | The attribute name of the named attribute in the
|
| public static final String | RESOLVABLE_AT_DESIGN_TIME | The attribute name of the named attribute in the
|
| Method from javax.el.ELResolver Summary: |
|---|
| getCommonPropertyType, getFeatureDescriptors, getType, getValue, isReadOnly, setValue |
| Methods from java.lang.Object: |
|---|
| equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method from javax.el.ELResolver Detail: |
|---|
property argument, given a base object.
One use for this method is to assist tools in auto-completion.
This assists tools in auto-completion and also provides a
way to express that the resolver accepts a primitive value,
such as an integer index into an array. For example, the
ArrayELResolver will accept any |
base object. One use for
this method is to assist tools in auto-completion.
If the The Each The caller should be aware that the This is a "best-effort" list. Not all The |
base and property, attempts to
identify the most general type that is acceptable for an object to be
passed as the value parameter in a future call
to the #setValue method.
If this resolver handles the given (base, property) pair,
the This is not always the same as |
property object on the given
base object.
If this resolver handles the given (base, property) pair,
the |
base and property, attempts to
determine whether a call to #setValue will always fail.
If this resolver handles the given (base, property) pair,
the |
property
object on the given base object.
If this resolver handles the given (base, property) pair,
the |