注入されたサービスからコマンドフィールドを初期化したい。
したがって、コマンドのメソッドを完全に初期化した後、フィールドに割り当てる前に実行する必要があります。 params
どうすればいいですか?OK、コンストラクターで手動でServiceBeanを取得できます。より良い方法はありますか?
運がなかった、@PostConstruct
またはInitializingBean
-コマンドは豆ではないようですよね?
Grails 1.3.5
注入されたサービスからコマンドフィールドを初期化したい。
したがって、コマンドのメソッドを完全に初期化した後、フィールドに割り当てる前に実行する必要があります。 params
どうすればいいですか?OK、コンストラクターで手動でServiceBeanを取得できます。より良い方法はありますか?
運がなかった、@PostConstruct
またはInitializingBean
-コマンドは豆ではないようですよね?
Grails 1.3.5
そうです、コマンドはBeanではありません。サービスメソッドによってコマンドインスタンスをインスタンス化し、そこで初期化を実行して、インスタンスをコントローラーに戻すことができます。次のように、返されたインスタンスを使用してコントローラーのbindDataを呼び出すよりも:
// controller code
def myService // injected
def action = {
def command = mySerivce.createCommandInstance()
bindData(command, params)
}
// service code
class MyService {
def createCommandInstance() {
def cmd = new MyCommand()
doSomeInitializationWithCommand(cmd)
return cmd
}
}