Ответ 1
В самом деле, это просто, и на Stack
Следуйте этому вопросу: Как отменить создание абсолютного URL-адреса с маршрута на Play 2 Java?
В очень общем случае вам нужно:
routes.MyController.myMethod().absoluteURL(request());
В настоящее время я получаю относительный URL-адрес как String через:
String url = controllers.directory.routes.Directory.viewOrganisation( org.id ).url();
Это прекрасно работает, но я бы хотел получить полный абсолютный URL-адрес. Я уверен, что это просто, я просто не могу найти его.
В качестве альтернативы, как я могу получить текущий домен в представлении для добавления к относительному URL-адресу?
В самом деле, это просто, и на Stack
Следуйте этому вопросу: Как отменить создание абсолютного URL-адреса с маршрута на Play 2 Java?
В очень общем случае вам нужно:
routes.MyController.myMethod().absoluteURL(request());
Для программиста 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 имеет нюансы.