XPages:从 managedBean 读取私有 属性 失败

XPages: reading a private property from a managedBean fails

在 Xpage 中,我需要计算多个复选框控件的禁用属性。所以我为此构建了一个 javaBean 并将其注册为 managedBean。原则上,这就像一个魅力:computedField 控件的 value 属性 使用 EL:

绑定到 bean 的私有变量之一
value="#{myBean.myTestValue}"

正如预期的那样,它显示了正确的内容。

接下来,我将复选框的 disabled 属性 绑定到在我的 bean 中计算的私有布尔变量,再次使用 EL:

disabled="#{myBean.isCheckBoxDisabled}"

不幸的是这次抛出一个javax.faces.el.PropertyNotFoundException

作为解决方法,我创建了一个 getter 方法,然后我从禁用的复选框 属性 中调用该方法,这次是 JS 代码:

disabled="#{javascript:myBean.isCheckBoxDisabled()}

这按预期工作,禁用 属性 已设置。这对我来说基本上没问题,尽管我很想用 EL 来做这件事,因为这似乎是最佳实践。

问题是:为什么控件的 value 属性 可以使用 bean 的私有变量而 disabled 属性 不能?

它应该适用于

disabled="#{myBean.checkBoxDisabled}"

EL "translates" 这个到
myBean.getCheckBoxDisabled()
myBean.isCheckBoxDisabled()(如果布尔值或布尔值 属性)
对于 getter 和
myBean.setCheckBoxDisabled(value)
setter.

如果您想从 EL、JavaScript 或 Java 类 在当前包之外。