0
在Grails控制器操作中,对于验证,我们使用命令对象。问题是CommandObject类的数量已经爆炸。Grails控制器,命令对象explotion
def publish = { PublishCommand command ->
if (command.hasErrors()) {
return redirect(action: 'errors',params:params)
}
//rest of the code
}
......
Class PublishCommand {
long personId
String name
static constraints = {
personId(nullable: false, blank: false)
name(nullable: false, blank: false)
}
}
PublishCommand类仅为此数据绑定&验证目的存在。这些类的数量已经爆炸,1为应用程序的每个动作创建。 问题是,有没有办法让这个PublishCommand成为innerClass?或者我不需要创建这么多课程的其他方式?
正如约书亚摩尔所说,绝对可以将它们添加为内部类......我很好奇,是什么导致命令对象的增长?我只问,因为当我第一次在Grails开始时,我发现自己更频繁地使用它们,因为我没有充分利用Grails的GSP表单 - >域映射功能。现在我发现自己只用它来搜索我没有使用@Validatable域类的地方。 – proflux
可以使用一些参数来封装从控制器传递到服务的“消息”。我说“消息”是指对象传递消息的OOP。通过使用命令对象,您可以定义控制器和服务之间的契约。此外,该合同可以被控制器以外的其他接口(例如ESB)重新使用。 –
我对这个特例更加好奇。声明“这些类的数量已经爆炸,1为应用程序的每个操作都创建了一个。”表明可能有一些Grails的功能可能有助于从根本上解决问题。 – proflux