ValueExpression
2008-11-20 00:24:00
可以获取或设置值的
标签:
ValueExpression
public abstract class javax.el
ValueExpression
| Show All Login
Java EE 5 SDK
|
Extends:
Expression
Hide
zh_cn |
Expression
。
此 API 以前的代号,只能读取表达式。
ValueExpression
对象现在可以用于获取值和设置值。可以设置值的表达式称为 l-value 表达式。不能设置值的表达式称为 r-value 表达式。并非所有 r-value 表达式都可以用作 l-value 表达式(例如,
"${1+1}"
或
"${firstName} ${lastName}"
)。有关详细信息,请参阅 EL 规范。对不能用作 l-value 的表达式调用
isReadOnly()
必须总是返回
true
。
可以使用
ExpressionFactory#createValueExpression
方法解析表达式字符串,并返回封装已解析表达式的
ValueExpression
的具体实例。解析时(而不是计算时)使用
FunctionMapper
,所以在计算表达式时不需要它。但是,计算时需要
ELContext
。
每次调用
#getValue
、
#setValue
、
#isReadOnly
和
#getType
方法时将对表达式求值。使用
ELContext
中的
ELResolver
解析顶级变量,并确定
.
和
[]
操作符的行为。对于这 4 个方法中的任何一个,使用
ELResolver#getValue
方法解析除最后一个属性以外的所有属性。这提供
base
对象。最后解析时,
ValueExpression
将调用相应的
ELResolver#getValue
、
ELResolver#setValue
、
ELResolver#isReadOnly
或
ELResolver#getType
方法,具体情况取决于在
ValueExpression
上调用哪个方法。
请参阅
Expression
javadoc 中有关比较、序列化和不可变性的注释。
since | JSP 2.1 |
See also | javax.el.ELResolver, javax.el.Expression, javax.el.ExpressionFactory |
Constructors | |
---|---|
public | ValueExpression() |
Properties | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
abstract public Class<T> | getExpectedType() Hide | |||||||||||||||||||
abstract public boolean | isReadOnly(ELContext context) Hide
#setValue 总是失败,则返回
true 。
| |||||||||||||||||||
abstract public Class<T> | getType(ELContext context) Hide
#setValue 方法时作为
value 参数传递的对象而言是可接受的。
这并非总是与
getValue().getClass() 相同。例如,如果是引用数组元素的表达式,则
getType 方法将返回数组元素的类型,这可能是当前位于指定的数组元素中实际元素类型的超类。
| |||||||||||||||||||
abstract public void | setValue(ELContext context, Object value) Hide
| |||||||||||||||||||
abstract public Object | getValue(ELContext context) Hide
所得值会自动强制匹配为创建此表达式时提供给
ExpressionFactory 的
getExpectedType() 所返回的类型。
|