2013-03-21 22 views
0

在XPage中,我有一个CheckBox控件绑定到bean的一个属性(称为product)。 如果我作出这样的属性,像这样的布尔..在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中的一个bug,将复选框控件映射到布尔值(以前有人做过?),还是我以错误的方式处理?

+0

我很惊讶它可以在Notes 9中工作,因为Notes中的行为始终是将复选框值存储为字符串。所以,不,我不是这是8.5.3中的一个bug,而是Notes 9中的一个新功能。 – 2013-03-21 18:49:06

+1

谢谢大卫。我认为,假设XPages控件纯粹是绑定到一个笔记文档数据源,如果是这样,我完全理解为什么复选框需要指向一个字符串值。如果有绑定到任何潜在的数据源,如豆,那么我会期望布尔值工作。我将在Notes 9中将其视为新的且有用的功能,并在早期版本中使用字符串值。干杯! – 2013-03-22 19:26:45

回答

0

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

+0

谢谢彼得。我想通过错误我的意思是动作挂在部分刷新上,而不是不工作。我正在考虑将这些控件视为通用的,所以适用于除了注释文档之外的其他数据源,但是可以明白为什么它们是基于这个原因被初始化的。我会把它作为9的增强 – 2013-04-04 20:11:41