Grails Command对象@PostConstruct还是什么?

时间:2011-07-01 11:34:50

标签: grails grails-controller

我想从注入的服务初始化Command字段。

所以我需要在完全初始化之后执行Command方法,但 params之前被分配给字段。

我该怎么办?好的,我可以在构造函数中手动获取Service bean。有更好的方法吗?

@PostConstructInitializingBean没有运气 - 看起来Command不是豆子,对吗?

Grails 1.3.5

1 个答案:

答案 0 :(得分:1)

你是对的,命令不是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
    }
}