私はいくつかのJavaコードをscalaに変換しています。特定のヘッダを取得して文字列として返すことができるようにしたいと考えています。scala play 2.0 get request header
私はJavaで:私はScalaで同じことを達成することができなかった
return request().getHeader("myHeader")
。どんな助けでも大歓迎です!ありがとう!
私はいくつかのJavaコードをscalaに変換しています。特定のヘッダを取得して文字列として返すことができるようにしたいと考えています。scala play 2.0 get request header
私はJavaで:私はScalaで同じことを達成することができなかった
return request().getHeader("myHeader")
。どんな助けでも大歓迎です!ありがとう!
あなたは書くことができます:
request.get("myHeader").orNull
あなたはJavaのラインと本質的に同じものを望んでいた場合。しかし、あなたはしません!
request.get("myHeader")
は、Option[String]
を返します。これは、ヌルポインタ例外をスローしないコードを書くことをScalaが奨励する方法です。
さまざまな方法でOption
を処理することができます。
val h: String = request.get("myHeader").getOrElse("")
それともあなたはそれが存在する場合は、ヘッダーで何かをしたい場合:
request.foreach { h: String => doSomething(h) }
それとも:
request foreach doSomething
たとえば、デフォルトの値を指定したい場合より多くの可能性については、this cheat sheetを参照してください。
ありがとう! null/Optionの場合も処理する必要があることに注意してください。多分私はより基本的な問題を抱えているでしょう。エラーが発生しました "見つかりませんでした:値の要求"。 – user1253952
どこを使ってみようとしていますか? –
非常に基本的な方法で私のコントローラファイルの一つで: def getName = request.get( "myHeader") – user1253952
私はplayframework 2.2とScalaのための答えの上にしようとしたとき:これが機能するようになりました
request.headers.get("myHeader").getOrElse("")
:
value get is not a member of play.api.mvc.Request[play.api.mvc.AnyContent]
私が使用:
request.get("myHeader").getOrElse("")
それは私に以下のエラーが発生します。これを使用することをお勧めします。また
http://stackoverflow.com/questions/11198998/scala-play-2-passing-request-to-method トラヴィス・ブラウンの答え以下のコメントを参照してください。 – user1253952