Maintains an ordered composite list of child
ELResolver
s.
Though only a single ELResolver
is associated with an ELContext
, there are usually multiple resolvers considered for any given variable or property resolution. ELResolver
s are combined together using a CompositeELResolver
, to define rich semantics for evaluating an expression.
For the {@link #getValue}, {@link #getType}, {@link #setValue} and{@link #isReadOnly} methods, an ELResolver
is notresponsible 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 CompositeELResolver
initializes the ELContext.propertyResolved
flag to false
, and uses it as a stop condition for iterating through its component resolvers.
The ELContext.propertyResolved
flag is not used for the design-time methods {@link #getFeatureDescriptors} and{@link #getCommonPropertyType}. Instead, results are collected and combined from all child ELResolver
s for these methods.
@see ELContext
@see ELResolver
@since JSP 2.1