我使用spring-expression来解析类中的值(存在于jar中)。在我读取此值后,我将其设置在目标类[spring-expression的典型用例]中。但是,除了布尔值之外,可以解析jar中类的所有字段值。在源类中,它声明如下:
boolean isVerified;
//getter
public isVerified() {
return isVerfied;
}
用于读取此值的Spring-expression代码:
Expression sourceExp = parser.parseExpression(<source field string>);
sourceExp.getValue(sourceContext);
然后失败了。信息是 找不到属性isVerified
我的问题是因为spring正在寻找isIsVerified方法而不是isVerified方法?如果不是这可能是失败的原因?
答案 0 :(得分:0)
您不显示表达式,但SpEL在访问bean属性时使用JavaBean语义。它对引用的bean的内部结构一无所知。遇到财产要求时......
"x.foo"
它试图找到getter getFoo()
(任何返回类型),如果找不到,它会查找isFoo()
,如果它返回布尔值。
我怀疑您正在尝试使用x.isVerified
。没有这样的吸气剂;您需要使用x.verified
,或者您可以调用方法本身x.isVerified()
。