Class ELContext
- Direct Known Subclasses:
EvaluationContext
To evaluate an Expression, an ELContext must be
provided. The ELContext holds:
- a reference to the base
ELResolverthat will be consulted to resolve model objects and their properties - a reference to
FunctionMapperthat will be used to resolve EL Functions. - a reference to
VariableMapperthat will be used to resolve EL Variables. - a collection of all the relevant context objects for use by
ELResolvers - state information during the evaluation of an expression, such as whether a property has been resolved yet
The collection of context objects is necessary because each
ELResolver may need access to a different context object.
For example, JSP and Faces resolvers need access to a
invalid reference
javax.servlet.jsp.JspContextinvalid reference
javax.faces.context.FacesContext
Creation of ELContext objects is controlled through
the underlying technology. For example, in JSP the
JspContext.getELContext() factory method is used.
Some technologies provide the ability to add an ELContextListener
so that applications and frameworks can ensure their own context objects
are attached to any newly created ELContext.
Because it stores state during expression evaluation, an
ELContext object is not thread-safe. Care should be taken
to never share an ELContext instance between two or more
threads.
- Since:
- JSP 2.1
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetContext(Class key) Returns the context object associated with the given key.abstract ELResolverRetrieves theELResolverassociated with this context.abstract FunctionMapperRetrieves theFunctionMapperassociated with thisELContext.Get theLocalestored by a previous invocation tosetLocale(Locale).abstract VariableMapperRetrieves theVariableMapperassociated with thisELContext.booleanReturns whether anELResolverhas successfully resolved a given (base, property) pair.voidputContext(Class key, Object contextObject) Associates a context object with thisELContext.voidSet theLocalefor this instance.voidsetPropertyResolved(boolean resolved) Called to indicate that aELResolverhas successfully resolved a given (base, property) pair.
-
Field Details
-
UNRESOLVABLE_RESULT
-
-
Constructor Details
-
ELContext
public ELContext()
-
-
Method Details
-
setPropertyResolved
public void setPropertyResolved(boolean resolved) Called to indicate that aELResolverhas successfully resolved a given (base, property) pair.The
CompositeELResolverchecks this property to determine whether it should consider or skip other component resolvers.- Parameters:
resolved- true if the property has been resolved, or false if not.- See Also:
-
isPropertyResolved
public boolean isPropertyResolved()Returns whether anELResolverhas successfully resolved a given (base, property) pair.The
CompositeELResolverchecks this property to determine whether it should consider or skip other component resolvers.- Returns:
- true if the property has been resolved, or false if not.
- See Also:
-
putContext
Associates a context object with thisELContext.The
ELContextmaintains a collection of context objects relevant to the evaluation of an expression. These context objects are used byELResolvers. This method is used to add a context object to that collection.By convention, the
contextObjectwill be of the type specified by thekey. However, this is not required and the key is used strictly as a unique identifier.- Parameters:
key- The key used by an @{link ELResolver} to identify this context object.contextObject- The context object to add to the collection.- Throws:
NullPointerException- if key is null or contextObject is null.
-
getContext
Returns the context object associated with the given key.The
ELContextmaintains a collection of context objects relevant to the evaluation of an expression. These context objects are used byELResolvers. This method is used to retrieve the context with the given key from the collection.By convention, the object returned will be of the type specified by the
key. However, this is not required and the key is used strictly as a unique identifier.- Parameters:
key- The unique identifier that was used to associate the context object with thisELContext.- Returns:
- The context object associated with the given key, or null if no such context was found.
- Throws:
NullPointerException- if key is null.
-
getELResolver
Retrieves theELResolverassociated with this context.The
ELContextmaintains a reference to theELResolverthat will be consulted to resolve variables and properties during an expression evaluation. This method retrieves the reference to the resolver.Once an
ELContextis constructed, the reference to theELResolverassociated with the context cannot be changed.- Returns:
- The resolver to be consulted for variable and property resolution during expression evaluation.
-
getFunctionMapper
Retrieves theFunctionMapperassociated with thisELContext.- Returns:
- The function mapper to be consulted for the resolution of EL functions.
-
getLocale
Get theLocalestored by a previous invocation tosetLocale(Locale). If this method returns nonnull, thisLocalemust be used for all localization needs in the implementation. TheLocalemust not be cached to allow for applications that changeLocaledynamically.- Returns:
- The
Localein which this instance is operating. Used primarily for message localization.
-
setLocale
Set theLocalefor this instance. This method may be called by the party creating the instance, such as JavaServer Faces or JSP, to enable the EL implementation to provide localized messages to the user. If noLocaleis set, the implementation must use the locale returned byLocale.getDefault( ). -
getVariableMapper
Retrieves theVariableMapperassociated with thisELContext.- Returns:
- The variable mapper to be consulted for the resolution of EL variables.
-