Grails命令对象可以为空的约束

时间:2012-01-04 19:51:06

标签: grails grails-validation command-objects

我最近将1.3.6应用程序升级到Grails2。我的测试用例已经开始失败了

这是场景,我有一个命令对象和一个约束。当请求到达操作时,没有参数namelocalhost:8080/app-name/Book/test?i=0) 我收到验证错误。 Grails doc说默认情况下Command对象字段是可以为空的。从这个测试来看,它看起来并非如此。我的问题是如何让所有命令对象全局为空?代码如下,

class BookController {

    def test = {TestCommand cmd ->
        cmd.validate()
        if (cmd.hasErrors()) {
            println "has Errors"
            render 'Error'
        } else {
            println "Success"
            render 'Hello World'
        }
    }
}

命令对象是:

class TestCommand {
       int i;
       String name

       static constraints = {
         name(password: true)
       }
} 

1 个答案:

答案 0 :(得分:2)

原来是Grails的错误。 Grails 2.0更改了有关命令对象的默认可空值的行为。这是JIRA