在Playframework 2 Scala中,play.mvc.Router.routes的等效方法是什么?
在playframework 1.x中,我可以在控制器中遍历可用路由:
for(Route route:Router.routes){
...
}
我该如何在PlayFramework 2 Scala中实现这个功能?
看起来,dev mode template未找到,但可以在模板中迭代它们,但我需要在控制器中实现这一点。
在Playframework 2 Scala中,play.mvc.Router.routes的等效方法是什么?
在playframework 1.x中,我可以在控制器中遍历可用路由:
for(Route route:Router.routes){
...
}
在Play 2.0中,您无法真正这样做。
路由被定义为PartialFunction [RequestHeader,Handler]
,没有办法知道此函数的域。
尽管如在not found模板中所示,但可以检索有关应用程序路由的一些信息:Play 2.0路由器生成一个documentation
字段,返回应用程序的每个路由的HTTP方法(GET
,PUT
等),其路径模式以及在conf/routes
文件中编写的调用方式。
路由器生成一个Routes
对象,在启动时由您的Play应用程序加载,您可以按以下方式访问它:
for {
routes <- play.api.Play.current.routes.toList
(method, pattern, call) <- routes.documentation
} yield {
…
}