0

現在のユーザーやナビゲーション状態など、すべてのビューとコンテキスト変数を共有することが望ましい場合があります。ドキュメントを調べてみると、すべてのビューでテンプレートエンジンにアクセスできるこのようなグローバルコンテキスト変数を共有する方法を見つけることができませんでした。

これはフレームワークによって提供されますか、それとも、ビューがこれらのグローバル変数を必要とするすべてのコントローラーで呼び出されるラッパーメソッドを作成することによって、これらの変数をすべてのビューに明示的に渡す方がよいでしょうか?

4

1 に答える 1

0

そのセッションおよびフラッシュスコープに使用できます

public static Result index() {
    // session is good for storing session data such as for an example logged user's info
    session("username", "John Doe");

    // flash is available only for next request (in this case for view rendering process)
    flash("navId", "mainPage");

    return ok(index.render("ellou' World"));
}

index.scala.html

@(message: String)

@main(message) {
    @if(flash.get("navId")=="mainPage"){<h1>Great! You're on main page again</h1>}
    <div>You're logged as @session.get("username")</div>
}

もちろん、ページごとに個別のデータ ( sample などnavId) の場合は、それをビューに渡すこともできます。ビューでは、 以外の必要な型を宣言できますString

于 2012-11-16T14:34:12.020 に答える