2013-11-26 96 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路线

相关问题