【发布时间】:2013-03-21 11:46:17
【问题描述】:
在 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" 和checkedValue="true"。有效!
在版本 9 中,它直接与布尔版本对应,无需转换为文本。
所以问题是这听起来像 8.5.3 中的一个错误,将复选框控件映射到布尔值(以前有没有人这样做过?),还是我以错误的方式接近这个?
【问题讨论】:
-
我很惊讶它在 Notes 9 中工作,因为 Notes 中的行为一直是将复选框值存储为字符串。所以,不,我不认为这是 8.5.3 中的错误,而是 Notes 9 中的新功能。
-
谢谢大卫。我认为假设 XPages 控件纯粹是为了绑定到笔记文档数据源,如果是这样,我完全理解为什么复选框需要指向字符串值。如果要绑定到任何潜在的数据源(例如 bean),那么我会期望布尔值起作用。我会将它视为 Notes 9 中的一个新的、有用的功能!在早期版本中坚持使用 Strings 值。干杯!