0

好的,我有一个看起来像这样的 Grails 过滤器:

after = { model ->
    modifyDataFromController(model)
}

我想修改从控制器呈现的数据,如下所示:

def myAction = {
    def myJson = getJson() // this returns JSON  
    render(contentType:"application/json", text:myJson)
}

那么,有没有办法让我通过模型对象访问 myJson ?如果没有,我应该如何从控制器访问数据?请非常具体,不要以为我知道你在说什么。:)

提前致谢。

4

2 回答 2

0

而不是渲染空白模板,您可以只返回模型本身

跟随可以是你行动的最后一行。

[data:myJson]

于 2013-09-23T07:27:36.457 回答
0

过滤器中的model属性为空,因为

render(contentType:"application/json", text:myJson)

直接写成myJson回复。我找不到在过滤器方法中访问响应内容的解决方案,如果有人有优雅的方法,请在此处发布解决方案。

目前我能想到的是将其修改render为如下所示:

render(template:'blankTemplate', model:[data:myJson])

其中blankTemplate指的是一个空白的gsp文件,即_blankTemplate.gsp。然后在过滤器中,您可以访问 json 数据并在之后呈现它:

after = { model ->
    modifyDataFromController(model.data)
    render(contentType:"application/json", text:model.data)
}
于 2013-01-17T10:09:58.323 回答