Grails命令对象可空约束

问题描述:

我最近将一个1.3.6应用程序升级到了Grails2。我的测试用例已经开始失败Grails命令对象可空约束

这里是场景,我有一个命令对象和一个约束。当请求触及该操作时,没有参数namelocalhost: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' 
     } 
    } 
} 

Command对象是:

class TestCommand { 
     int i; 
     String name 

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

它原来是一个Grails错误。 Grails 2.0已经改变了关于命令对象的默认可空值的行为。这里是JIRA