2014-04-14 103 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來檢查它的方法。