我已经在游戏2.5中使用:
提取了ROUTE_PATTERNrequest.tags.get("ROUTE_PATTERN")
现在我更新了游戏2.6,这段代码不再适用了。我在这里阅读播放文档: What’s new in Play 2.6
我试过了:
object Attrs {
val RoutePattern: TypedKey[String] = TypedKey("ROUTE_PATTERN")
}
request.attrs.get(Attrs.RoutePattern)
它总是返回None。如何在游戏2.6中获取请求的RoutePattern?
答案 0 :(得分:5)
如果您使用了
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