gpt4 book ai didi

Grails:嵌套命令对象

转载 作者:行者123 更新时间:2023-12-04 04:08:44 28 4
gpt4 key购买 nike

在我的grails应用中,我有一个外部命令对象,其中包含其他命令对象的列表:

public class OuterCommand {

List<InnerCommand> innerCommands = ListUtils.lazyList([], FactoryUtils.instantiateFactory(InnerCommand))
}

class InnerCommand {
String code
Long id
String value

static constraints = {
code(nullable: false, blank: false)
value(nullable: false, blank: false)
}
}
innerCommands的非常不寻常的实例化基于 this advice。但是,我发现,如果我在 validate()实例上调用 OuterCommand,则验证似乎无法验证所包含的 InnerCommand实例。

在最外层对象上调用 validate()时,是否可以嵌套命令对象并验证命令对象的整个图?

最佳答案

我按照以下步骤进行工作:

使内部命令对象可验证,因为它不会像普通命令对象那样被实例化。有两种方法可以执行此操作,即使用@org.codehaus.groovy.grails.validation.Validateable批注或使用grails配置参数grails.validateable.classes
为InnerCommands添加自定义验证器到OuterCommand

static constraints = {
innerCommands(validator: {val, obj ->
// 'attributes.validation.failed' is the key for the message that will
// be shown if validation of innerCommands fails
return val.every { it.validate() } ?: ['attributes.validation.failed']
})
}

关于Grails:嵌套命令对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1875734/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com