3

我在 play 2.5 中提取了 ROUTE_PATTERN:

request.tags.get("ROUTE_PATTERN")

现在我更新了 play 2.6,这段代码不再起作用了。我在这里阅读了播放文档: Play 2.6 中的新增功能

我试过了:

object Attrs {
    val RoutePattern: TypedKey[String] = TypedKey("ROUTE_PATTERN")
  }
  request.attrs.get(Attrs.RoutePattern)

它总是返回无。如何在 play 2.6 中获取请求的 RoutePattern?

4

1 回答 1

8

2.6 迁移指南

如果您使用了任何Router.Tags.*标签,您应该更改您的代码以使用新的Router.Attrs.HandlerDef(Scala)....

这个新属性包含一个包含HandlerDef当前标签中所有信息的对象。当前标签都对应HandlerDef对象中的一个字段......

HandlerDef对应于旧ROUTE_PATTERN标签的字段是path

import play.api.routing.{ HandlerDef, Router }
import play.api.mvc.RequestHeader

val handler = request.attrs(Router.Attrs.HandlerDef)
val routePattern = handler.path
于 2018-01-17T12:22:49.980 回答