需要将null值保存到布尔变量。 当我尝试提交一个没有选中任何输入的表单时,我在myVariable中有一个“false”而不是null。 该属性在表单上具有布尔类型。 这是我的jsp代码的一部分:
<spring:bind path="form.myVariable">
<table cellpadding="0" cellspacing="0" border="0" >
<td valign="middle">
<input type="checkbox" name="<c:out value="${status.expression}"/>" value="true" <c:if test='${status.value == "true"}'>checked</c:if> />
</td>
<td valign="middle">
<input type="checkbox" name="<c:out value="${status.expression}"/>" value="false" <c:if test='${status.value == "false"}'>checked</c:if> />
</td>
<input type="hidden" name="_<c:out value="${status.expression}"/>" value="">
</table>
该属性在hbm.xml中配置如下:
<property name="myVariable" not-null="false" type="java.lang.Boolean" access="field" column="MY_VARIABLE"/>
我还将CustomBooleanEditor添加到控制器中的活页夹中:
binder.registerCustomEditor(Boolean.class, new CustomBooleanEditor("true", "false", true));
它出了什么问题?
答案 0 :(得分:1)
该属性在您的模板中有Boolean
类型。 HTML复选框不是三态,它们是真还是假。
答案 1 :(得分:0)
你的hbm.xml配置没有-not =&#34; false&#34;,hibernate不期望处理空值。所以你的数据库不应该为这个字段给hibernate一个空值,所以也许hibernate把一个空值当作false。