Play フレームワークの公式ドキュメントが推奨request
するように、リクエストに関連付けられたいくつかのオブジェクトへのアクセスを改善するために暗黙を使用できます。
サンプル:
def index = Action { implicit request =>
session.get("connected").map { user =>
Ok("Hello " + user)
}.getOrElse {
Unauthorized("Oops, you are not connected")
}
}
これは、トレイトimplicit
に属する次のメソッドが追加されたためです。Controller
/**
* Retrieves the session implicitly from the request.
*
* For example:
* {{{
* def index(name:String) = Action { implicit request =>
* val username = session("username")
* Ok("Hello " + username)
* }
* }}}
*/
implicit def session(implicit request: RequestHeader) = request.session
質問: このメソッド自体が として宣言されているのはなぜimplicit
ですか? request
パラメータを として宣言するだけで十分ではありませんimplicit
か?
私は代わりにそれを見ることを期待していました:
def session(implicit request: RequestHeader) = request.session