【问题标题】:Binding a CheckBox control to a Bean in XPages将 CheckBox 控件绑定到 XPages 中的 Bean
【发布时间】: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 值。干杯!

标签: java xpages


【解决方案1】:

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

【讨论】:

  • 谢谢彼得。我猜我所说的错误是指动作挂在部分刷新上的事实,而不仅仅是不工作。我将这些控件视为通用控件,因此适用于除注释文档之外的其他数据源,但可以看到为什么它们因此而被置于主要位置。我会将其视为 9 中的增强功能
猜你喜欢
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2016-01-06
  • 1970-01-01
相关资源
最近更新 更多