【发布时间】:2018-12-08 01:24:13
【问题描述】:
我正在阅读 Spring 5.1.3 参考文档,SpEL Type Conversion 得到以下示例代码:
class Simple {
public List<Boolean> booleanList = new ArrayList<Boolean>();
}
Simple simple = new Simple();
simple.booleanList.add(true);
EvaluationContext context = SimpleEvaluationContext.forReadOnlyDataBinding().build();
// false is passed in here as a string. SpEL and the conversion service
// correctly recognize that it needs to be a Boolean and convert it
parser.parseExpression("booleanList[0]").setValue(context, simple, "false");
// b is false
Boolean b = simple.booleanList.get(0);
它像提到的文档一样工作,并改变属性的值,但根据 Javadocs forReadOnlyDataBinding()
创建一个 {@code SimpleEvaluationContext} 以通过 {@link DataBindingPropertyAccessor} 对公共属性进行只读访问。
SpEL表达式不应该是只读的,不改变属性值吗?
【问题讨论】:
标签: spring-el