将CheckBox控件绑定到XPages中的Bean

2022-03-28 00:00:00 java xpages

在XPage中,我有一个CheckBox控件绑定到bean(称为product)的属性。 如果我将该属性设置为布尔值,如下所示..

private boolean selected = true;
public boolean isSelected() {
    return selected;
};
public void setSelected(boolean selected) {
    this.selected = selected;
};

并使用EL As绑定复选框#{product.selected),然后页面最初可以正常打开,但在部分刷新时挂起,但是我在日志中看不到任何错误。

如果我在bean中添加另一个包装器getter/setter以返回文本版本,如下所示:

public String getSelectedTxt() {
    return String.valueOf(selected);
}
public void setSelectedTxt(String selectedTxt) {
    selected = Boolean.parseBoolean(selectedTxt);
}
然后将复选框绑定到#{product.selectedTxt},并使uncheckedValue="false"checkedValue="true"。它起作用了!

在版本9中,它与布尔版本直接对应,无需转换为文本。

所以问题是,这听起来像是8.5.3中将复选框控件映射到布尔值的错误吗(以前有人这样做过吗?),或者我处理这个问题的方式错了吗?


解决方案

复选框是用于显示"关键字"类型的备注字段内容的一系列选项之一。关键字是具有有限组值的文本字段。虽然您可能会认为复选框是一个布尔型控件,但这并不是它们的原始目的或意图。因此,我不会将8.5.3实现视为错误。如果9.0行为已更改为支持布尔值,那么这是个好消息。

相关文章