Spring MVC布尔值没有绑定到复选框

时间:2013-07-26 02:47:08

标签: spring model-view-controller binding checkbox boolean

为了后人的缘故,请求并回答我自己的问题。我在我的页面上使用了这样的标签:

<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()”)可以解决问题。

1 个答案:

答案 0 :(得分:0)

尝试将对象和jsp中的属性名称更改为active(小写字母)。

private Boolean active;

<form:checkbox path="active" label="label" />