Grails - 组合命令对象和子对象中的错误

时间:2013-07-03 16:48:47

标签: grails command-objects

我检查了Grails: How to combine domain objects' errors with command objects' errors?,但由于某种原因,解决方案对我不起作用。它们可能只适用于Grails 1.3.7而不是Grails 2.2.1。

我有一个命令对象OuterObjectCommand,它包含一个InnerObjectCommand列表。我在控制器中手动填充它,然后调用validate。在OuterObjectCommand上调用validate()似乎没有验证InnerObjectCommand列表,因此我分别验证列表的所有元素。我想要做的是将InnerObjectCommand对象和OuterObjectCommand对象的所有错误添加到flash.errors中。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

查看validator页面中的最后一个示例。

含糊不清,你需要以下内容:

class ParentCommand {
    List<ChildCommand> childCommands
    static constraints = {
        childCommands validator: {val, obj ->
            def errors = []
            val.each{
                 errors << (!it.validate() ? it.errors.allErrors : [])
            }

            errors?.flatten()
        }
    }
}