0

我最近将一个 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)
       }
} 
4

1 回答 1

2

事实证明这是一个 Grails 错误。Grails 2.0 更改了有关命令对象的默认可为空值的行为。这是JIRA

于 2012-01-05T15:25:27.020 回答