使用布尔字段的评估上下文解析Spring表达式

时间:2015-07-17 09:49:32

标签: java boolean pojo spring-el

我使用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

我的问题是因为s​​pring正在寻找isIsVerified方法而不是isVerified方法?如果不是这可能是失败的原因?

1 个答案:

答案 0 :(得分:0)

您不显示表达式,但SpEL在访问bean属性时使用JavaBean语义。它对引用的bean的内部结构一无所知。遇到财产要求时......

"x.foo"

它试图找到getter getFoo()(任何返回类型),如果找不到,它会查找isFoo(),如果它返回布尔值。

我怀疑您正在尝试使用x.isVerified。没有这样的吸气剂;您需要使用x.verified,或者您可以调用方法本身x.isVerified()