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

这是场景,我有一个命令对象和一个约束。当请求到达操作时,不带参数name(localhost:8080/app-name/Book/test?i=0)
我收到验证错误。 Grails博士说,“命令对象”字段默认情况下可以为空。从这次测试看来,事实并非如此。我的问题是如何使所有命令对象的全局值都可为空?下面的代码

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)
       }
}

最佳答案

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

07-24 21:39