0

在 XPage 中,我有一个 CheckBox 控件绑定到 bean(称为产品)的属性。如果我将该属性设为像这样的布尔值..

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

并使用 EL 绑定复选框,#{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"and checkedValue="true"。有用!

在版本 9 中,它直接针对布尔版本工作,无需转换为文本。

所以问题是这听起来像 8.5.3 中的一个错误,将复选框控件映射到布尔值(以前有没有人这样做过?),还是我以错误的方式接近这个?

4

1 回答 1

0

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

于 2013-04-03T18:38:08.470 回答