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() 所返回的类型。
| |||||||||||||||||||
ValueExpression表达式详解
本文深入探讨了Java EE5 SDK中的ValueExpression表达式,包括其构造、属性、方法及使用场景。介绍了如何获取或设置表达式,区分l-value与r-value表达式,以及解析表达式字符串的具体方法。

1945

被折叠的 条评论
为什么被折叠?



