我是Play Framework的新手。当我在其网页上学习它时。我发现了一些这样的代码:
import play.api.mvc._
def logging[A](action: Action[A]) = Action.async(action.parser) { request =>
logger.info("Calling action")
action(request)
}
我检查了文件,有一个函数async
在ActionBuilder
。
如何Action.async
运作?这似乎是没有对象Action
在play.api.mvc
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
}