1 grails
我对Grails有点新鲜.当我创建或更新域对象和fire save()或validate()对象时,如果方法失败,系统似乎不会抛出异常.我没有看到任何方法来检查究竟是什么失败.
一个典型的片段:
if (domainInstance.validate()) {
flash.message = "Succesfully updated domain object"
} else {
flash.message = "Failed to update domain object"
//throw new RuntimeException("Invalid broker")
log.error "Failed to update domain object"
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,验证失败,我在黑暗中为什么.有人能说清楚吗?
如果置于try/catch中,则不会抛出异常.
mydomain.validate()用于仅验证对象.您可以使用mydomain.hasErrors()来加载errors对象并打印以下语句出错的地方.
if(mydomain.hasErrors()){
mydomain.errors.allErrors.each{println it}
}
Run Code Online (Sandbox Code Playgroud)
通常我喜欢保存和更新任何对象的方式是
if(mydomain.hasErrors() || !mydomain.save(failOnError:true){
//action to be taken if domain validation fails.
}
Run Code Online (Sandbox Code Playgroud)
通过设置failOnError:true,如果save()失败,将抛出需要在控制器中捕获的验证异常.
| 归档时间: |
|
| 查看次数: |
2168 次 |
| 最近记录: |