2013-11-26 93 views
1

我在Play Scala 2.2中定義了以下控制器。Play Scala從另一種方法調用控制器方法

​​

我得到的編譯以下錯誤:

Overloaded method value [apply] cannot be applied to (play.api.mvc.Action[play.api.mvc.AnyContent])

任何想法我做錯了嗎?我可以從另一個調用一個控制器方法嗎?我對Scala和Play非常陌生。

+3

你可以嘗試'高清defaultList =名單(DateTime.now ())'(沒有Action)。這只是一個預感,你將兩個動作嵌套在一起,這就是導致錯誤的原因。你也可以將我們指向編譯器遇到的問題嗎? –

回答

1

你不能用這種方式換行,因爲play2中的任何動作都需要一個函數:Request => Result所以從請求到結果,在你的代碼中你返回另一個Action,所以它不會編譯。你可以像@Akos Krivachy建議的那樣做,把你的list Action的調用放入一個不是Action的函數中,然後將這個函數綁定到某個路由上。在這種情況下,您可能只有一條路線來綁定您的defaultList函數。或者,您可以留下您defaultList作爲Action和使用內部重定向:

def defaultList = Action { 
     Redirect(routes.Application.list(DateTime.now())) 
    } 

注意:您需要表明route文件都Actions路線

相關問題