public class ChainAwareVariableResolver extends VariableResolver
This special VariableResolver serves as the "original" VariableResolver that is passed to the one-arg ctor for the first custom VariableResolver that is encountered during application configuration. Subsequent VariableResolver instances get passed the previous VariableResolver instance, per section 10.4.5 of the spec.
The "specialness" of this VariableResolver is found in its resolveVariable(javax.faces.context.FacesContext, java.lang.String)
method, which delegates to the head of the
"correct" ELResolver chain based on the context in which this
expression is being evaluated. If the expression being evaluated
originated in a JSP page, the Application
's
ExpressionFactory
is used to create a
ValueExpression
, which is then evaluated to resolve the
variable. This will cause the ELResolver chain described in section
5.6.1 of the spec to be used. If the expression being evaluated
originated in a programmatic API call, the Application
's
ELResolver
is used to resolve the variable. This will
cause the ELResolver chain described in section 5.6.2 of the spec to
be used.
Constructor and Description |
---|
ChainAwareVariableResolver() |
Modifier and Type | Method and Description |
---|---|
Object |
resolveVariable(FacesContext context,
String name)
See the class javadocs.
|
public Object resolveVariable(FacesContext context, String name) throws EvaluationException
resolveVariable
in class VariableResolver
context
- FacesContext
against which to resolve
this variable namename
- Name of the variable to be resolvedEvaluationException
- if an exception is thrown while resolving
the variable name (the thrown exception must be included as the
cause
property of this exception)Copyright © 1997–2019 Eclipse Foundation. All rights reserved.