2012-06-22 1 views
16

Chciałbym uzyskać bezwzględny adres URL z kontrolera w grze 2 Java. Znalazłem exact same question for Scala, ale nie mogę sprawić, żeby działało w Javie.Odwracanie generuje bezwzględny adres URL z trasy w grze 2 Java?

public class MyController extends Controller { 
    public static Result myMethod() { 
     return ok(); 
    } 

    public static Result test() { 
     Logger.info(routes.MyController.myMethod().url); // Doesn't work ! 
     Logger.info(routes.MyController.myMethod().absoluteURL()); // Doesn't work ! 
     Logger.info(routes.MyController.myMethod().absoluteURL(true)); // Doesn't work ! 
     return ok(); 
    } 
} 

Dzięki za pomoc!

Odpowiedz

25

Dodaj żądanie absoluteURL()

routes.MyController.myMethod().absoluteURL(request()); 
+5

Uwaga: działa to, ponieważ absoluteURL używa obiektu Request do znalezienia domeny. –

+0

ale to nie działa w Play 2.2 dla Scala. –

2

Nie jestem pewien, czy to działa w wersji 2.0, ale ponieważ używasz Java, może to wystarczyć. Używam go w 1.2.4.

Router.getFullUrl("Controller.action") 

Powodzenia!

Edytuj: Importuję plik play.mvc.Router, więc jeśli nie istnieje w wersji 2.0, może się okazać, że jest on podobny.

Jest to także dokumentacja gry 2.0 na temat trasowania, sprawdź routing wsteczny, może to pomoże.

http://www.playframework.org/documentation/2.0.1/JavaRouting

+0

próbowałem ale 'getFullUrl' nie istnieje w 2,0 widocznie:/ –

+0

Szkoda, że ​​było całkiem użyteczne. Z tego, co przeczytałem z dokumentacji, za każdym razem, gdy kontroler jest używany w trasach conf, generuje on kontroler odwrotny. Wygląda na to, że 'controllers.routes.Controller.action (args)'. Edytowałem swoją odpowiedź z linkiem do dokumentacji. – Alex

+0

+1 dla odniesienia 1.2.4 –