2012-06-22 2 views
16

Play 2 Java의 컨트롤러에서 절대 URL을 가져오고 싶습니다. exact same question for Scala을 찾았지만 Java로 작동하지 않습니다.Play 2 Java의 경로에서 절대 URL을 역순으로 생성하는 방법은 무엇입니까?

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(); 
    } 
} 

감사합니다.

답변

25

getFullUrl` 분명히 2.0에 존재하지 않는`내가 노력 absoluteURL()

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

참고 :이 기능은 absoluteURL이 도메인을 찾기 위해 요청 개체를 사용하기 때문에 가능합니다. –

+0

하지만 스칼라 용 Play 2.2에서는 작동하지 않습니다. –

2

2.0에서 작동하는지 잘 모르겠지만 자바를 사용하고 있으므로 트릭을 할 수 있습니다. 나는 1.2.4에서 그것을 사용한다.

Router.getFullUrl("Controller.action") 

행운을 빈다!

편집 : play.mvc.Router를 가져옵니다. 2.0에 없으면 비슷한 것을 찾을 수 있습니다.

또한이 문서는 라우팅에 대한 2.0 문서이며, 역방향 라우팅을 확인하면 도움이 될 것입니다.

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

+0

에 요청을 추가했지만 :/ –

+0

가 너무 나쁜, 그 꽤 유용했다. 설명서에서 읽은 것부터 컨트롤러가 경로 conf에 사용될 때마다 역 컨트롤러가 생성됩니다. 이것은'controllers.routes.Controller.action (args)'처럼 보입니다. 내 대답은 문서에 대한 링크로 편집했습니다. – Alex

+0

+1 1.2.4 참조 용 –

관련 문제