在Grails应用程序中,我正在寻找一些方法将数据从控制器操作传递到操作后运行的过滤器。我喜欢思考的东西:从控制器向过滤器传递数据
class MyController {
def myAction = {
render(view:"myView", model:[key: "value"])
passData {
// Do some processing here
name = "paolo"
age = 38
}
}
}
public class MyFilters {
def name
def age
def filters = {
myFilter(controller: "*", action: "*") {
after = { model ->
// Do something with name and age
return true
}
}
}
}
最初的计划是做在BootStrap.config的的init()关闭以下几点:
- 使用元编程添加一个“passData(闭幕pdClosure)“方法
- 将pdClosure的委托设置为MyFilters,以便在此闭包中设置名称和年龄属性时,它们将在MyFilters实例上进行设置。
但是,我意识到这是行不通的,因为没有明显的方式让我访问(从BootStrap.init)MyFilters实例,该实例将被调用特定的控制器。
同样,似乎没有任何方式可以从过滤器中访问控制器实例。当然,我可以将所有的数据填充到模型中,但是我想知道是否有更好的方法在两者之间传递数据?
谢谢, 唐