2013-04-17 18 views
5

Ich bin ein Neuling bei Java und verwende das play framework 2.0 für ein Projekt und habe mich gefragt, wie man die Reverse-Routing-Funktionalität nutzen kann. Wir haben die folgenden:play framework 2.0 reverse routing

In der Routen-Datei

GET/    controllers.Application.index() 
GET /myapp/storage controllers.myapp.AnotherController.index() 

So Reverse-Routing zu verwenden:

controllers.routes.ref.Application.index() 

aber was AnotherController?

Wenn ich controllers.routes.ref.AnotherController.index() in einem Test verwenden, wird das Play-Framework einen Fehler "kann Symbol nicht finden" werfen.

Danke.

+0

Warum nicht nur Ihre AnotherController.java innerhalb der app.controllers Paket auch platzieren? –

+0

Ich hatte gehofft, Controller in einzelne Pakete zu gruppieren. Bei der GET-Anfrage mit der definierten Route "GET/test controllers.myapp.AnotherController.index()" wurde das play framework ohne Problem gelöst. Ich hatte also gehofft, dass das umgekehrte Routing auch mit diesem Setup funktionieren würde. – user2288625

+0

Und hast du versucht 'ontrollers.routes.ref.myapp.AnotherController.index()'? –

Antwort

11

Versuchen Sie, das ref Element fallen zu lassen. Ich verwende die folgende Struktur für reverse routes in meinem Play-2.0.4 App:

<full-package-name>.routes.<controller>.<action> 

So ist die umgekehrte Route zu Ihrem zweiten Aktion wäre also:

controllers.myapp.routes.AnotherController.index() 

Da die Aktion keine Parameter Ich denke, Sie können auch die Klammern fallen lassen:

controllers.myapp.routes.AnotherController.index 
+0

Dank Avik .. Arbeitete perfekt !! – user2288625

+0

Danke Avik, es hat funktioniert ... :) –

1

Auf diese Weise arbeitete für mich. Ich weiß nicht warum:

activator clean 
activator run 
Verwandte Themen