0

我检查了Grails:如何将域对象的错误与命令对象的错误结合起来?,但由于某种原因,这些解决方案对我不起作用。它们可能仅适用于 Grails 1.3.7 而不是 Grails 2.2.1。

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

4

1 回答 1

0

查看验证器页面中的最后一个示例。

模糊地,您需要以下内容:

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

            errors?.flatten()
        }
    }
}
于 2013-07-03T18:28:55.233 回答