Expression
that can get or set a value. In previous incarnations of this API, expressions could only be read. ValueExpression
objects can now be used both to retrieve a value and to set a value. Expressions that can have a value set on them are referred to as l-value expressions. Those that cannot are referred to as r-value expressions. Not all r-value expressions can be used as l-value expressions (e.g. "${1+1}"
or "${firstName} ${lastName}"
). See the EL Specification for details. Expressions that cannot be used as l-values must always return true
from isReadOnly()
.
The {@link ExpressionFactory#createValueExpression} methodcan be used to parse an expression string and return a concrete instance of
ValueExpression
that encapsulates the parsed expression. The {@link FunctionMapper} is used at parse time, not evaluation time, so one is not needed to evaluate an expression using this class. However, the {@link ELContext} is needed at evaluation time.
The {@link #getValue}, {@link #setValue}, {@link #isReadOnly} and{@link #getType} methods will evaluate the expression each time they arecalled. The {@link ELResolver} in the
ELContext
is used to resolve the top-level variables and to determine the behavior of the .
and []
operators. For any of the four methods, the {@link ELResolver#getValue} method is used to resolve all properties up to but excluding the last one. This provides the base
object. At the last resolution, the ValueExpression
will call the corresponding {@link ELResolver#getValue}, {@link ELResolver#setValue}, {@link ELResolver#isReadOnly} or {@link ELResolver#getType} method, depending on which was called on the ValueExpression
.
See the notes about comparison, serialization and immutability in the {@link Expression} javadocs.
@see javax.el.ELResolver
@see javax.el.Expression
@see javax.el.ExpressionFactory
@see javax.el.ValueExpression
@author Jacob Hookom [jacob@hookom.net]
@version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: kchung $
}
public ValueExpression createValueExpression(Class expectedType)
throws ELException {
Node n = this.build();
return new ValueExpressionImpl(this.expression, n, this.fnMapper,
this.varMapper, expectedType);
}
}
public Object getValue(EvaluationContext ctx) throws ELException {
// Create a lambda expression
ValueExpression expr =
new ValueExpressionImpl("#{Lambda Expression}",
this.children[1],
ctx.getFunctionMapper(),
ctx.getVariableMapper(),
null);
List<String>parameters =
}
public ValueExpression createValueExpression(Class expectedType)
throws ELException {
Node n = this.build();
return new ValueExpressionImpl(this.expression, n, this.fnMapper,
this.varMapper, expectedType);
}
Related Classes of com.sun.el.ValueExpressionImpl
Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.