私は現在、次の方法で相対URLルートを文字列として取得しています。
String url = controllers.directory.routes.Directory.viewOrganisation( org.id ).url();
これは問題なく動作しますが、完全な絶対URLを取得したいと思います。これは簡単だと思いますが、見つけられないようです。
または、ビュー内の現在のドメインを取得して相対URLに追加するにはどうすればよいですか?
確かにそれは単純であり、スタックでも回答されました
この質問に従ってください: Play 2 Javaのルートから絶対URLを逆生成する方法は?
一般的に、次のものが必要です。
routes.MyController.myMethod().absoluteURL(request());
Scalaプログラマー:Play 2.2.xでは、absoluteURLは次のようにオーバーロードされます:
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])
2つのオプションがあります。リクエストを暗黙的に宣言します。
def myMethod() = Action { implicit request =>
...
}
パラメータを完全に削除します(もう一方にはデフォルト値があるため、実行できます)。
routes.MyController.myMethod().absoluteURL()
または、両方のパラメーターを明示的に指定する必要があります。
質問は「PlayFramework2で文字列として絶対ルートURLを取得する方法」であり、受け入れられる回答はJavaのみです。Scalaバージョンには微妙な違いがあります。