我将登录的用户对象存储在播放缓存(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)
);
最优化的方法是什么才能最大限度地重复使用代码?
答案 0 :(得分:0)
在我的项目中,我通过调用
访问视图模板中的缓存@play.api.cache.Cache.get(key)
但我的缓存只不过是一串JSON数据,所以我不确定它是否适用于你的对象。也许尝试类似的事情:
@play.api.cache.Cache.get(key).name
其中name
是对象的属性,看看是否有效?
如果您尝试访问视图模板中的缓存,请记住模板顶部的@import play.api.Play.current
。