【问题标题】:Bind checkbox to String instead of Boolean in form将复选框绑定到字符串而不是表单中的布尔值
【发布时间】:2011-08-09 16:15:58
【问题描述】:

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

【问题讨论】:

    标签: jsp spring-mvc binding checkbox


    【解决方案1】:

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

    弹簧形式:

    <form:hidden path="mypassedfield" />
    

    jQuery:

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

    【讨论】:

    • 抱歉,这太可怕了。没有更好的方法吗,比如转换器,或者类似的东西?不能编写转换器来转换 String->Boolean 以允许自动复选框绑定???
    猜你喜欢
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多