2012-09-25 4 views
21

は、私は現在経由して文字列として相対URLのルートを取得しています。私はこれが簡単だと確信しています、私はそれを見つけるように見えません。絶対パスのURLを取得する方法は、フレームワーク2のStringですか?これは正常に動作します</p> <pre><code>String url = controllers.directory.routes.Directory.viewOrganisation(org.id).url(); </code></pre> <p>しかし、私は完全な絶対URLを取得したいと思います:

また、ビュー内の現在のドメインを取得して相対URLに追加するにはどうすればよいですか?

答えて

22

は確かにそれは簡単です、それはまた、この質問フォロースタック

に答えた:あなたが必要とする非常に一般的にHow to reverse generate an absolute URL from a route on Play 2 Java?

:Scalaのプログラマーのために

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

ありがとうBiesior。私はスタックを検索しましたが...私の脳は少しぼやけているに違いないでしょう!それがトリックでした。このような簡単な質問に時間を割いてくれてありがとう! – afxdesign

+1

これはスタックオーバーフローのためのものです:)あなたがそれを見つける次回は心配しないでください:) – biesior

8

:プレイ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() 

か、その両方を指定する必要がありますパラメータを明示的に指定する

私はここで答えを書いています。なぜなら、「絶対パスのURLをPlay Framework 2のStringとして取得する方法」であり、受け入れられる答えはJavaのみです。 Scalaバージョンにはニュアンスがあります。

関連する問題