2

すべてのリクエストにメソッドを呼び出す必要があります-試しました

object Global extends GlobalSettings {

    override def onRouteRequest(request: RequestHeader): Option[Handler] = {
        var test: String = request.session.get("test").getOrElse {
            request.session + ("test" -> "123")
            "000"
        }

        println(test)

        super.onRouteRequest(request)
    }

}

しかし、コンソールには常に「000」が表示され、ページにはドメインのCookieが表示されません

更新:ResponseHeaderによって新しいCookieが追加されましたが、RHが作成される前にRHに新しいCookieを追加するにはどうすればよいですか?イベントリスナーのようなものはありますか?postActionのように?

4

1 に答える 1

1

新しい Cookie を追加するには、ドキュメントで説明されているように、セッションへの応答にそれらを追加する必要があります。

例えば:

Ok("Hello World!").withSession(
  session + ("saidHello" -> "yes")
)

ブラウザからリクエストを受け取った後に Cookie を追加しようとしているため (ブラウザが持っている Cookie が含まれています)、何をしようとしても意味がありません。つまり、コードが機能する場合、常にセッションにその値が存在するため、セッションが存在することがわかっているため、セッションをチェックする必要はありません。冗長になる。

于 2012-04-16T11:50:20.633 に答える