0

UrlMappings.groovyを使用してルート ページのコントローラーを指定できることはわかってい"/"(controller: "default")ますが、少なくとも 1 つの定義済みコントローラーにアクセスするメイン レイアウト ページ (この場合は main.gsp) を作成したいと考えています。試してみまし"/layouts/main.gsp"(controller: "default")たが、うまくいきませんでした。どうすればそれを達成できますか?ありがとう!

4

2 に答える 2

4

main.gspページではなくレイアウトです。レイアウトは、コントローラーによってレンダリングされるページによって使用されます。コントローラーにレイアウトをレンダリングさせるような設計はすべきではありません。Grails の美しい構造を破壊します。
そのレイアウトのオブジェクトにアクセスする場合は、そのレイアウトを使用するページにオブジェクトを渡します。
ユースケースについて教えてください。もう少しお手伝いできるかもしれません。

于 2012-09-03T06:18:16.410 に答える
-2

問題を解決する別の方法を見つけました。これで、すべてのアクションのセッションから来るユーザー インスタンスを渡すことができます。そのため、いつでもどこでもレイアウト ヘッダーにユーザー情報が表示されます (もちろん、ユーザーがログオンしている場合)。

私の手順:

  1. まず、grails フィルターを作成します。
  2. 現在のユーザーを取得し、それをすべてのコントローラーのアクションに渡すために作成されたフィルターから「後」のクロージャーを変更します。次のようになります。

    after = { Map model ->
    
        def user = null
    
        if (!session.isNew()) {
            user = session["user"]
    
            if (user) {
                if (!model)
                    model = [:]
    
                model["user"] = user
            }
        }
    
    }
    

参考になれば幸いです、ありがとう!

于 2012-09-03T20:13:25.847 に答える