Playframework 2-为任何操作设置会话变量

Playframework 2-为任何操作设置会话变量,playframework,playframework-2.0,Playframework,Playframework 2.0,我需要所有请求的调用方法-我尝试了 object Global extends GlobalSettings { override def onRouteRequest(request: RequestHeader): Option[Handler] = { var test: String = request.session.get("test").getOrElse { request.session + ("test" -> "123

我需要所有请求的调用方法-我尝试了

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”,在页面上没有域cookies

更新:ResponseHeader添加了新的cookie,但如何在创建RH之前将新cookie添加到RH?
是否存在类似事件侦听器的内容?像postAction一样?

要添加新的Cookies,您必须将它们添加到会话的响应中,如中所述

例如:

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

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

我认为cookies是在响应对象中设置的,而不是在请求中设置的。我不知道你是怎么把它们放在这里的。