2012-09-25 810 views
21

Actualmente estoy recibiendo una ruta URL relativa como una cadena a través de:¿Cómo obtener la URL de ruta absoluta como String In Play framework 2?

String url = controllers.directory.routes.Directory.viewOrganisation(org.id).url(); 

Esto funciona bien sin embargo me gustaría obtener la URL absoluta completa. Estoy seguro de que esto es simple, parece que no puedo encontrarlo.

Como alternativa, ¿cómo puedo obtener el dominio actual dentro de una vista para agregarlo a la URL relativa?

Respuesta

22

De hecho, es simple y también fue respondida en la pila

Siga esta pregunta: How to reverse generate an absolute URL from a route on Play 2 Java?

En muy general que necesita:

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

Gracias Biesior. Busqué la Pila pero ... ¡mi cerebro debe haber estado un poco agotado! Eso hizo el truco. ¡Gracias por tomarse el tiempo para una pregunta tan simple! – afxdesign

+1

Para eso está Stack Overflow :) No se preocupe, la próxima vez lo encontrará :) – biesior

8

Para Scala programador: En juego 2.2. x la URL absoluta está sobrecargada de esta manera:

def absoluteURL(secure: Boolean = false)(implicit request: RequestHeader): String 

Así que si usted escribe simplemente

routes.MyController.myMethod().absoluteURL(request) 

obtendrá un error:

Overloaded method value [absoluteURL] cannot be applied to (play.api.mvc.Request[play.api.mvc.AnyContent]) 

hay dos opciones. O se declara la solicitud como implícita:

def myMethod() = Action { implicit request => 
    ... 
} 

y deshacerse de los parámetros por completo (lo puede hacer, debido a que el otro tiene un valor por defecto):

routes.MyController.myMethod().absoluteURL() 

o tiene que especificar tanto parámetros explícitamente.

Estoy escribiendo esta respuesta aquí, porque la pregunta es "Cómo obtener URL de ruta absoluta como String In Play framework 2" y la respuesta aceptada es solo para Java. La versión de Scala tiene sus matices.

Cuestiones relacionadas