2011-11-29 68 views
1

我的控制器有這個(測試)代碼:的Grails - hasErrors()

println domainInstance.hasErrors() 
render (view: "edit", model: [domainInstance: domainInstance]) 

println打印false到控制檯,但是GSP使用<g:hasErrors>渲染錯誤。

爲什麼這會發生?

+0

看來,域實例得到確認在某個地方/在'render'後聲明。所以'hasErrors()'在'domainInstance.validate()'後面調用時返回'true'(如預期的那樣)。 – zoran119

回答

4

如果您顯示GSP代碼,這將有所幫助,但我的猜測是hasErrors()返回true,因爲您尚未調用validate()

0123'方法不會執行驗證,而只是報告上次驗證執行時是否檢測到錯誤。所以我懷疑在致電hasErrors()之後以及在致電<g:hasErrors>進行驗證之前的某段時間。

總之,如果你更換呼叫

println domainInstance.hasErrors() 

println domainInstance.validate() 

應該修復它