ZK框架中使用MVVM的奇怪复选框行为
我在MVVM中发现了zk复选框的奇怪行为。我制作了一个MVVM表单,显示项目列表和所选项目的详细视图。我将复选框放在详细视图上,并将其绑定到POJO的布尔属性。当我选择一个属性值为真的项目时,复选框显示为选中状态,但接下来当我选择一个属性值为假的项目,然后再次选择一个属性值为真的项目时,复选框显示为未选中状态。 我可以用ZK的MVVM教程(源代码)来说明这个问题 添加到汽车类布尔属性:ZK框架中使用MVVM的奇怪复选框行为,mvvm,checkbox,zk,Mvvm,Checkbox,Zk,我在MVVM中发现了zk复选框的奇怪行为。我制作了一个MVVM表单,显示项目列表和所选项目的详细视图。我将复选框放在详细视图上,并将其绑定到POJO的布尔属性。当我选择一个属性值为真的项目时,复选框显示为选中状态,但接下来当我选择一个属性值为假的项目,然后再次选择一个属性值为真的项目时,复选框显示为未选中状态。 我可以用ZK的MVVM教程(源代码)来说明这个问题 添加到汽车类布尔属性: private Boolean cool = false; public Car(Integer id, S
private Boolean cool = false;
public Car(Integer id, String model, String make, String description, String preview, Integer price, boolean cool){
this.id = id;
this.model = model;
this.make = make;
this.preview = preview;
this.description = description;
this.price = price;
this.cool = cool;
}
public Boolean getCool() {
return cool;
}
public void setCool(Boolean cool) {
this.cool = cool;
}
将CarServiceImpl.java更改为初始化演示的布尔属性:
carList.add(
new Car(id++,
"Camry",
"Toyota",
"The Toyota Camry is a midsize car ... ",
"/img/car3.png",
24170, true));
carList.add(
new Car(id++,
"Century",
"Toyota",
"The Toyota Century is ... " ,
"/img/car4.png",
28730, true));
更改searchMvvm.zul(添加标记为插入的行):
关键词:
$
然后启动Tomcat并在浏览器中输入localhost:8080/tutorial/searchMvvm.zul。当您单击丰田凯美瑞项目时,一切正常,但当您单击日产Cifiro,然后再次单击丰田凯美瑞时,detaled视图中的复选框将显示为未选中状态。但listbox中的复选框工作正常
你知道解决这个问题的方法吗?我也有同样的问题,但是当我用
isCool()
(在zkv7上)更改getCool()
时,它被修复了。我正在使用ZK7,我也遇到了同样的问题。
我得到一个:
Property 'standard' not readable on type
在布尔标准上,有getter-isStandard和setter-setStandard
解决办法是:
- 使用布尔值(对象)时,必须使用get前缀
- 使用布尔值(原语)时,可以使用is前缀
checkbox.setCheck(Boolean.valueOf(true));
zk7中的已知错误,zk6没有此问题,因此如果您可以降级,您有一个解决方案如果您有新问题,请单击按钮询问。如果这个问题有助于提供上下文,请包含一个指向该问题的链接
checkbox.setCheck(Boolean.valueOf(true));