Java 无法将复选框值注入Springbean
我正在使用SpringMVC和tring从表单读取参数。我的豆子看起来像这样:Java 无法将复选框值注入Springbean,java,spring,jsp,spring-mvc,handlebars.js,Java,Spring,Jsp,Spring Mvc,Handlebars.js,我正在使用SpringMVC和tring从表单读取参数。我的豆子看起来像这样: public class ChannelBean { private Integer id; private Integer siteId; private String name; private Boolean active; private Boolean premium; public Integer getId() { return id; } public void setId(Intege
public class ChannelBean {
private Integer id;
private Integer siteId;
private String name;
private Boolean active;
private Boolean premium;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getActive() {
return active;
}
public void setActive(Boolean active) {
this.active = active;
}
public Boolean getPremium() {
return premium;
}
public void setPremium(Boolean premium) {
this.premium = premium;
}
public Integer getSiteId() {
return siteId;
}
public void setSiteId(Integer siteId) {
this.siteId = siteId;
}
}
在前端,我有把手模板:
<script id="editFormTemplate" type="text/x-handlebars-template">
<form id="channelForm" class="form-horizontal" action="/admin/channel/save.action" method="POST">
<input type="hidden" readonly="readonly" name="siteId" value="${selectedSiteId}">
<input type="hidden" readonly="readonly" name="id" value="{{id}}">
<div class="form-group">
<label class="col-sm-2 control-label channelName">Name<span class="required">*</span></label>
<div class="col-sm-10">
<input class="form-control" type="text" name="name" value="{{name}}" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Premium</label>
<div class="col-sm-10">
<input type="checkbox" name="premium" {{#if premium}}checked{{/if}} value="{{premium}}">
</div>
</div>
<cms:csrfToken />
<div class="modal-footer">
<button type="submit" class="btn btn-edit btn-primary has-spinner submitEditButton">Ok<span class="spinner"><i class="fa fa-refresh fa-spin"></i></span></button>
<button type="button" class="btn btn-warning" data-dismiss="modal">Cancel</button>
</div>
</form>
</script>
名字*
保险费
好啊
取消
在Java中的控制器中,当我收到Bean时,“name”值设置正确,但来自复选框的premium值为null?由于您使用的是
布尔值
,因此需要在页面加载时将值初始化为false
。因此,在页面加载时将premium
初始化为false
,或者
将ChannelBean.java中的
private Boolean premium
更改为private Boolean premium
尝试将bean中的premium类型从布尔更改为字符串,并选中两种情况:未选中和选中复选框。我记得当它被取消选中时,根本不会发送任何参数。您是否可以选择使用“”(从)?我应该如何使用编写它?您必须声明/导入:
(在jsp的顶部/底部),您必须使用
而不是(普通)
标记…并使用布尔绑定(“高级”),您可以尝试:
(而不是
标记)…当我更改为布尔值时,会出现以下错误:java.lang.IllegalArgumentException当我尝试查询itemsokay时。然后用一个值初始化该字段。还要调试并检查值是否正确填充奇怪的是,当我打开编辑视图时,值设置正确,这意味着bean从数据库中正确获取。但当我取消选中该字段时,该更改在bean中不可见,并且其发送为空。另一个问题是,当我取消选中该复选框时,其值不会更改