2013-05-09 45 views
1

我們正在嘗試遵循http://www.playframework.com/documentation/2.1.1/JavaCache中列出的「模板緩存」示例,編譯器會拋出「not enough arguments for method getOrElse」異常消息。我們如何在Play 2.1中調用「模板緩存」?

我們在模板代碼:

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

所以我們決定挖API,顯然我們仍然短java.util.concurrent.Callable參數。有誰知道我們應該通過什麼參數?

感謝

Play 2.1.1 Javadoc

回答

3

那是因爲你正試圖從Scala的模板使用Java API與斯卡拉緩存API的syntaxe。如果你想使用的文件的例子,你需要寫類似:

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

的play.api包是包斯卡拉的API。

如果你想使用Java緩存API從模板,這個API需要3個參數,你需要寫類似:

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

嗨特雷沃,你是對的。我們將Scala與Java API混合在一起。感謝您幫助我們 :)) – luxcan 2013-05-13 04:47:04