2012-01-04 58 views
0

我最近將一個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) 
     } 
} 

回答

2

它原來是一個Grails錯誤。 Grails 2.0已經改變了關於命令對象的默認可空值的行爲。這裏是JIRA