为了后代的缘故,询问然后回答我自己的问题。我在我的页面上使用了这样的标签:
<form:checkbox path="Active" label="label" />
该复选框将根据从数据库中提取的布尔值正确选中(或取消选中)。但是,对复选框的更改从未绑定到实体并保留回数据库。事实证明,问题出在我的实体是如何构建的。我的实体有这样的属性和方法:
private Boolean Active;
public Boolean getActive() {
return this.Active;
}
public Boolean setActive(Boolean active) {
this.Active = active;
}
public boolean isActive() {
if (getActive() == null) {
return false;
}
return getActive().booleanValue();
}
事实证明,“isActive()”方法会干扰复选框上选择的值被绑定回实体上的 Active Boolean 属性。将该方法重命名为其他任何名称(例如“isPersonActive()”)可以解决问题。