我想问一下关于grails'控制器中错误报告的正确方法的一般问题。这种做法的常见方式似乎是使用弹簧验证错误界面。它简单,优雅,在GSP渲染中得到了很好的支持:
def myAction() {
...
errors.reject(...) // NPE
...
if (hasErrors()) {
// handle errors
}
}
但是,我也注意到,当使用域对象和参数绑定时,errors
具有null
值。这是grails'的错误还是我错过了什么。在这种情况下,添加任何假String
(以避免任何绑定错误)参数的操作有很大帮助:
def myAction(String dummyArg) {
...
errors.reject(...) // successful, no NPE
...
if (hasErrors()) {
// handle errors
}
}
当然,这样的解决方案远非优雅。如何强制errors
始终可访问?如果有时候errors
是null
,那么这是正确的错误报告方法吗?