在Play2.0中以编程方式添加路线

2024-01-11

在游戏 1.2.X 中我们可以做

Router.addRoute("GET", "/somePath", "controller.methodName");

我正在编写一个模块,添加一个“路由”,该“路由”将由模块中的控制器处理。它是一个 OAuth 处理程序,希望让用户能够轻松地不必处理 OAuth 握手等问题。

我如何在 Play 2.0 中执行此操作?


您无法以编程方式添加到 Routes 对象,但您可以拦截 Web 请求并通过覆盖自行处理它们GlobalSettings.onRouteRequest。例如:

override def onRouteRequest(request: RequestHeader): Option[Handler] = {
  //do our own path matching first - otherwise pass it onto play.
  request.path match {
    case "/injectedRoute" => Some(controllers.Application.customRoute)
    case _ => Play.maybeApplication.flatMap(_.routes.flatMap {
      router =>
      router.handlerFor(request)
    })
  }
}

我不知道这是否是推荐的方法,但它对我有用。这是 github 上的示例:https://github.com/edeustace/play-injected-routes-example https://github.com/edeustace/play-injected-routes-example

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Play2.0中以编程方式添加路线 的相关文章

随机推荐