0

このように、ログインした User オブジェクトを Play キャッシュ ( using play.cache.Cache) に格納しています。

User user = userRepo.findUserFromDB(id);
String uuid = java.util.UUID.randomUUID().toString();
Cache.set(uuid, user);
session("uuid", uuid);

レンダリングするすべてのビューでこのオブジェクトを使用したい (フッター テンプレートにログインしているユーザーに関する情報を表示するため)。1 つの方法は、このオブジェクトをすべてのコントローラーから引数としてビューに渡すことですが、それは間違いなくそれを行う方法ではありません。

String uuid = session("uuid") 
User user = Cache.get(uuid);
return ok(
        dashboard.render(user, other_params)
    );

コードの再利用を最大化する最も洗練された方法は何でしょうか?

4

1 に答える 1

0

私のプロジェクトでは、呼び出してビュー テンプレートのキャッシュにアクセスします。

@play.api.cache.Cache.get(key)

しかし、私のキャッシュはJSONデータの文字列に過ぎないので、オブジェクトの場合にうまくいくかどうかはわかりません. 多分次のようなものを試してください:

@play.api.cache.Cache.get(key).name

nameオブジェクトの属性はどこにあり、それが機能するかどうかを確認しますか?

また@import play.api.Play.current、ビュー テンプレートのキャッシュにアクセスしようとしている場合は、テンプレートの上部にあることを忘れないでください。

于 2013-08-13T23:08:32.230 に答える