温馨提示:本文翻译自stackoverflow.com,查看原文请点击:scala - Where is the object Action in play.api.mvc?
playframework scala

scala - play.api.mvc中的对象Action在哪里?

发布于 2020-05-01 11:20:32

我是Play Framework的新手。当我在其网页上学习它时。我发现了一些这样的代码:

import play.api.mvc._
def logging[A](action: Action[A]) = Action.async(action.parser) { request =>
  logger.info("Calling action")
  action(request)
}

我检查了文件,有一个函数asyncActionBuilder

如何Action.async运作?这似乎是没有对象Actionplay.api.mvc

查看更多

提问者
Confixuan
被浏览
8
Mario Galic 2020-02-12 18:45

object Action已在Play 2.8中通过删除不推荐使用的play.api.mvc.Action#9288删除,并已替换为BaseController.Action引用注入 方法,controllerComponents.actionBuilder而不是引用全局对象的方法

  /**
   * ...
   * This is meant to be a replacement for the now-deprecated Action object, and can be used in the same way.
   */
  def Action: ActionBuilder[Request, AnyContent] = controllerComponents.actionBuilder

注意方法名称如何以大写字母开头(也许是非常规的)。我的假设是这样做是为了保持熟悉的用法

def foo(query: String) = Action {
  Ok
}