9

我有一个Play 2.0应用程序

TestController.scala

def foo(p1: String) = Action {implicit request =>
  Ok(bar(p1))
}

private def bar(p1: String) = {
//access request parameter here
}

有没有办法用来implicit传递requestbar

4

1 回答 1

18

是的你可以:

  def foo(p1: String) = Action { implicit request =>
    Ok(bar(p1))
  }

  private def bar(p1: String)(implicit req: RequestHeader) = "content"

编码:

Action { implicit request

在 Action 对象上调用此方法:

def apply(block: Request[AnyContent] => Result): Action[AnyContent] = {

因此,您所说的“请求”与名为“块”的参数匹配。这里的“隐式”是可选的:它使“请求”值可用作其他方法/函数调用的隐式参数。

您的“bar”函数中的隐式表示它可以从隐式值中获取“req”的值,并且不一定需要显式传递。

于 2012-06-26T00:22:07.660 回答