反向路由 - 使用多个路由文件播放2.2.x应用程序

时间:2014-04-14 21:43:20

标签: scala playframework

我的应用程序中的主要路由文件是从控制器中获得一点点,所以我尝试将它分成多个路由文件

路由

GET           /                      controllers.Application.index
->            /                      someresource.Routes

someresource.routes

GET           /                      controllers.SomeResource.get()

someresource的路由似乎工作正常。但是我似乎无法进行反向路由:

示例:

routes.SomeResource.get().url()

有办法做到这一点吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

我只是通过分割整个"子目录来实现这一目标。申请。基本上,您必须为辅助路由提供除/之外的根路径。辅助路由文件引用的任何控制器也需要位于controllers.

的某个子包中

这是一个例子。请注意,您的SomeResource控制器现在位于controllers.somepackage下,someresource.routes中定义的所有路由都将以/somepath为前缀。

<强> CONF /路由

->   /somepath   someresource.Routes

<强> CONF / someresource.routes

GET  /    controllers.somepackage.SomeResource.get()

视野中的反向路由

@somepackage.routes.SomeResource.get

答案 1 :(得分:2)

由于您的路线定义不允许,因此您无法将ID值传递给get()

此外,反向路由被编译到controllers包中,因此它将是controllers.ReverseSomeResource.get().url

您将在target/scala_$VERSION/classes_managed中找到已编译的代码,后跟包命名约定(在本例中为controllers)。您可以在已编译的类上使用javap来检查其方法。