Подтвердить что ты не робот

Как получить абсолютный маршрут URL как String In Play framework 2?

В настоящее время я получаю относительный URL-адрес как String через:

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

Это прекрасно работает, но я бы хотел получить полный абсолютный URL-адрес. Я уверен, что это просто, я просто не могу найти его.

В качестве альтернативы, как я могу получить текущий домен в представлении для добавления к относительному URL-адресу?

4b9b3361

Ответ 2

Для программиста Scala: в Play 2.2.x абсолютныйURL перегружен таким образом:

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

Итак, если вы пишете только

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

вы получите сообщение об ошибке:

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

Есть два варианта. Вы либо объявляете запрос как неявный:

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

и полностью избавиться от параметров (вы можете сделать это, потому что другое имеет значение по умолчанию):

routes.MyController.myMethod().absoluteURL()

или вам нужно явно указать оба параметра.

Я пишу этот ответ здесь, потому что вопрос: "Как получить абсолютный URL-адрес маршрута как String In Play Framework 2", а принятый ответ - только для Java. Версия Scala имеет нюансы.