GRAILS:将对象传递给每个 View ?

标签 grails

假设我有一个过滤器(在每个操作之前调用它),我如何将从数据库中获取的对象传递到每个 View ?我不想重构 我所有的方法。

可视化:

我有一个设置对象的过滤器,例如:

def god = God.find(1)

我有 100 个 Controller ,每个 Controller 有 100 个方法,即 100 * 100 个 View 。 通常在操作中你会写这样的内容:

def index = {
 def something = Something.find(1)
 [something: something]
}

问题是我如何也传递God对象,而不必修改返回数组

[something: something, god: god]

最佳答案

您需要为您的过滤器添加一个 after 拦截器类型。 aftermodel 作为闭包的参数,您可以将 god 添加到该模型中。

myFilter(controller:'*', action:'*') {
    after = { model ->
        def god = God.find(1)
        model.god = god
    }
}

Here's相关文档部分。

关于GRAILS:将对象传递给每个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490553/

相关文章:

grails - 如何使用Grails 2.2.1下载GGTS 3.2.0

mysql - grails 和 mysql 批处理

tomcat - 在 Tomcat 上部署两个 Grails 应用程序会忽略一个数据源

security - 带有分析的 Grails 菜单

grails - 如何在grails Controller 中重置参数?

grails - GORM 只读列

mongodb - 指向无效属性-MongoDB&Grails 3.3+

json - 如何在 grails 中注册自定义 json marshaller

tomcat - 使用 Grails 持续交付

grails - java.lang.LinkageError : loader constraint violation in Grails project