2014-04-14 72 views
2

在我的应用我的主路由文件越来越有点不控制的,所以我试图分裂它在多个路由文件反向路由 - 发挥2.2.x的多路径文件应用

路线

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

someresource.routes

GET   /     controllers.SomeResource.get() 

路由someresource似乎工作正常。不过,我似乎无法做反向路由:

例如:

routes.SomeResource.get().url() 

有没有办法做到这一点?

谢谢!

回答

4

我只通过拆分应用程序的整个“子目录”来完成此工作。基本上,你必须给你的辅助路径以外的根路径/。由第二路由文件引用的任何控制器也需要位于某些子包中controllers.

下面是一个示例。请注意,您的SomeResource控制器现在处于controllers.somepackage之下,并且在someresource.routes中定义的所有路由将以/somepath为前缀。

CONF /路由

-> /somepath someresource.Routes 

CONF/someresource.routes

GET/ controllers.somepackage.SomeResource.get() 

反向路由鉴于

@somepackage.routes.SomeResource.get 
2

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

此外,反向路由被编译成controllers包,所以这将是controllers.ReverseSomeResource.get().url

你会发现在target/scala_$VERSION/classes_managed编译代码,然后包命名约定(在这种情况下controllers)。你可以在编译的类上使用javap来检查它的方法。