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)
    );

最大化代码重用的最优雅的方法是什么?

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 回答