0

OK、次のような Grails フィルターがあります。

after = { model ->
    modifyDataFromController(model)
}

次のように、コントローラーからレンダリングされるデータを変更したいと思います。

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

では、モデル オブジェクトを介して myJson にアクセスする方法はありますか? そうでない場合、コントローラーからデータにアクセスするにはどうすればよいですか? 私があなたの言っていることを知っていると思い込まないでください。:)

前もって感謝します。

4

2 に答える 2

0

フィルタのmodelプロパティはnullです。

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 に答える