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