将复选框绑定到String而不是布尔形式

时间:2011-08-09 16:15:58

标签: jsp spring-mvc binding checkbox

我有一个自定义对象列表,我在表单中用作commandName对象,通常每个对象都包含一个String标签,String类型(INTEGER或BOOLEAN)和一个值。对于INTEGER类型,表单显示<form:input并且绑定就好了。但是,对于BOOLEAN类型,我希望能够使用'true'和'false'的值字符串并将它们绑定到一个复选框。这很简单,因为它们是布尔类型,但它们是字符串,而普通的<form:checkbox代码不起作用。我也试过使用隐藏,但它没有正确绑定。是否有捷径可寻?当我再次提交表单时,复选框值必须再次为字符串,即(checked =“true”,unchecked =“false”)。

1 个答案:

答案 0 :(得分:2)

复选框实际上没有多个值 - 它具有值,表示已选中,或者没有。在您的情况下,我会将您想要来回传递的值绑定到隐藏的表单字段,并使用客户端JavaScript根据用户是否单击复选框来设置隐藏表单字段的值。此外,在页面加载时,Spring将设置绑定隐藏字段的值,此时您可以使用JavaScript根据隐藏字段中的绑定值检查复选框。

弹簧形式:

<form:hidden path="mypassedfield" />

jQuery的:

if($(".mycheckbox").prop("checked", true)){
   $(".mypassedfield").val($(".mycheckbox").val());
}