gpt4 book ai didi

grails - 将数据从 Controller 传递到过滤器

转载 作者:行者123 更新时间:2023-12-02 13:59:49 27 4
gpt4 key购买 nike

在 Grails 应用程序中,我正在寻找某种方法将数据从 Controller 操作传递到在操作之后运行的过滤器。我在想类似的东西:

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() 闭包中执行以下操作:
  • 使用元编程为所有 Controller 添加“passData(Closure pdClosure)”方法
  • 将 pdClosure 的委托(delegate)设置为 MyFilters,以便在此闭包中设置名称和年龄属性时,它们会在 MyFilters 实例上设置。

  • 但是,我意识到这不起作用,因为我没有明显的方法来访问(从 BootStrap.init)将为特定 Controller 调用的 MyFilters 实例。

    同样,似乎没有任何方法可以从过滤器中访问 Controller 实例。当然,我可以将所有数据塞入模型中,但我想知道是否有更优雅的方式在两者之间传递数据?

    谢谢,
    大学教师

    最佳答案

    在模型中传递你的数据对我来说似乎非常优雅和容易。如果出于某种原因您不希望数据对 View 可用,您甚至可以从过滤器中的模型中删除数据。

    关于grails - 将数据从 Controller 传递到过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049791/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com