11

リダイレクトを使用せずに、あるコントローラーから別のコントローラーにモデル全体を渡すにはどうすればよいですか?

4

2 に答える 2

11

私はこれにかなり長い間苦労したので、自分の質問に答えることにしました...

forwardメソッドで十分可能です。chainメソッドとは異なり、ドキュメントでは属性について言及されていませんmodelが、[少なくとも grails 2.1.1 では]実際にサポートされています。

コントローラー 1 の場合:

    def model = [
        firstname:           params.firstname, 
        lastname:            params.lastname
    ]

    forward(controller:"controllerName",action:"index", model:model)

コントローラー 2 で:

    render (view: "/page.gsp") 

page.gsp 内

    Welcome ${firstname} ${lastname},
    ...

そのような単純な...

于 2012-11-19T15:52:11.387 に答える
1

オブジェクト全体 (独自のメソッドを含む) を渡したい場合は、grails のコントローラー アクション間でオブジェクトを渡すための最良の方法に関する私の回答を参照してください。

重要なのは、1) ソース アクションで「チェーン アクション」を使用すること、2) ターゲット アクションで chainModel を使用することです。

于 2016-09-22T14:53:27.020 に答える