在Play中从视图模板访问缓存的对象! 2.1框架

时间:2013-08-13 22:06:23

标签: java scala caching playframework playframework-2.0

我将登录的用户对象存储在播放缓存(using play.cache.Cache)中,如下所示。

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

我想在我渲染的每个视图中使用此对象(以在页脚模板中显示有关登录用户的信息)。一种方法是将此对象作为参数传递给每个控制器的视图,但这绝对不是这样做的方式。

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

最优化的方法是什么才能最大限度地重复使用代码?

1 个答案:

答案 0 :(得分:0)

在我的项目中,我通过调用

访问视图模板中的缓存
@play.api.cache.Cache.get(key)

但我的缓存只不过是一串JSON数据,所以我不确定它是否适用于你的对象。也许尝试类似的事情:

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

其中name是对象的属性,看看是否有效?

如果您尝试访问视图模板中的缓存,请记住模板顶部的@import play.api.Play.current