我们如何为Play 2.1调用“模板缓存”?

时间:2013-05-09 06:08:13

标签: playframework playframework-2.0 playframework-2.1

我们正在尝试遵循http://www.playframework.com/documentation/2.1.1/JavaCache中列出的“模板缓存”示例,编译器会向我们抛出“not enough arguments for method getOrElse”异常消息。

我们在模板中的代码:

@play.cache.Cache.getOrElse("cached-content", 3600){
    test
}

所以我们决定挖掘API,显然我们还缺少java.util.concurrent.Callable参数。有谁知道我们应该为该参数传递什么?

由于

Play 2.1.1 Javadoc

1 个答案:

答案 0 :(得分:3)

它是因为您尝试使用Scala模板中的Java API和Scala缓存API的语法。如果您想使用文档中的示例,您需要编写如下内容:

@import play.api.Play.current
@play.api.cache.Cache.getOrElse("key", 3600) {
    <h1>Cached content</h1>
} 

play.api包是Scala API的包。

如果要从模板中使用Java Cache API,此API需要3个参数,您需要编写如下内容:

@play.cache.Cache.getOrElse("key", new java.util.concurrent.Callable[String] {
    def call: String = "Cached content again"
}, 3600)