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 类 在当前包之外。
在 Xpage 中,我需要计算多个复选框控件的禁用属性。所以我为此构建了一个 javaBean 并将其注册为 managedBean。原则上,这就像一个魅力:computedField 控件的 value
属性 使用 EL:
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 类 在当前包之外。