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 创建之前将新的 cookie 添加到 RH?是否存在类似事件监听器的东西?喜欢 postAction?

4

1 回答 1

1

要添加新的 Cookie,您必须将它们添加到 Session 的响应中,如文档中所述。

例如:

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

您尝试做的事情没有意义,因为您在收到来自浏览器的请求(其中包含浏览器拥有的 cookie)后尝试添加 Cookie。这意味着如果您的代码正常工作,您将始终在会话中拥有该值,因此无需检查会话,因为您会知道它存在。变得多余。

于 2012-04-16T11:50:20.633 回答