我有一个Play 2.5 Java项目,该项目具有一堆与其关联的模板(即* .scala.html文件)。 我正在尝试将项目从2.5升级到2.6,但该项目不再编译,这是有问题的 代码段通常看起来像这样
@(user: models.User)
@import play.api.Play.current
@play.api.cache.Cache.getOrElse("header" + user.getId(), 3600) {
...
}
,错误跟踪为
[error] head.scala.html:3: object Cache is not a member of package play.api.cache
[error] @play.api.cache.Cache.getOrElse("header" + user.getId(), 3600) {
[error] ^
Play文档建议改用“ play.cache.SyncCacheApi”,即
https://www.playframework.com/documentation/2.6.x/CacheMigration26
但是此API不包含getOrElse()等效函数,我可以找到的最接近的函数是
T getOrElseUpdate(String key,Callable block,int expiration);
我不知道如何在模板中使用。
Play文档的另一部分建议我使用可注射旋转模板,即
https://www.playframework.com/documentation/2.6.x/Highlights26#Injectable-Twirl-Templates
这更加令人困惑,而且仍然无法解决我要使用的重新分配功能
我的模板中的getOrElse。
如果任何人都有play.api.cache.Cache.getOrElse()替换功能的有效示例 那将是很大的帮助。