Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在grails中使用带有输入:复选框的命令对象布尔值_Grails_Command Objects - Fatal编程技术网

在grails中使用带有输入:复选框的命令对象布尔值

在grails中使用带有输入:复选框的命令对象布尔值,grails,command-objects,Grails,Command Objects,这可能是一个可笑的简单问题,但我一直在努力解决它 我有一张表格: . . . <g:form controller='somecontroller' action='someaction'> <g:textField name='name'/> <g:checkBox name='active'/> <g:submitButton name='save'/> </g:form> . . . 当我尝试访问控制器中

这可能是一个可笑的简单问题,但我一直在努力解决它

我有一张表格:

.
.
.
<g:form controller='somecontroller' action='someaction'>
    <g:textField name='name'/>
    <g:checkBox name='active'/>
    <g:submitButton name='save'/>
</g:form>
.
.
.
当我尝试访问控制器中命令对象的活动属性时,它总是false。但是,名称属性正在正确填充。我已经尝试将值更改为true,还更改了${true}(如我在一些示例中所看到的),但似乎都没有效果。我做错了什么

编辑:如何绑定到控制器中的命令对象:

class MyController{

    .
    .
    .

    def save(MyCommandObject cmd){

        // Do validation/error checking

        def myDomainObject = new DomainObject()

        myDomainObject.name = cmd.name
        myDomainObject.active = cmd.active

        // Do something with myDomainObject

    }

}
我也尝试过这种风格:

def save = { MyCommandObject cmd ->

    .
    .
    .
}

您所做的一切看起来都很好,我已经验证为在1.3.7和2.0.4中工作


请执行
grails clean
并重试。

您如何绑定到控制器中的命令对象?您是对的-这应该而且通常很简单。我刚刚在Grails2.0.4上验证了这两种方法,在1.3.7上验证了第二种方法。当I
println cmd.active
完全按照您的要求执行时,正确打印
true
false
。您是否尝试过grails clean——不确定还可以尝试什么。只要您的实际表单有正确的控制器和操作,并且上面的演示表单没有显示任何打字错误,您所做的一切看起来都很好。@Kelly感谢您的调查。奇怪的是,所有其他字段都可以工作,而不是复选框/布尔字段。后续:我按照@Kelly的建议对grails进行了清理,从而纠正了这个问题。如果你想回答这个问题,我会接受的。谢谢!我在Grails2.1.1中遇到了同样的问题。将参数绑定到命令对象中的布尔成员始终会导致该成员为null。在GrailsClean(以及GGTS中的project clean)之后,一切都很好。也许太阳黑子太多了?看起来命令对象还是有点不成熟,即使是在2.2.0中。可能是3/4烤的;)是的,grails clean在2.2.4中也是必需的
def save = { MyCommandObject cmd ->

    .
    .
    .
}