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

时间:2012-04-08 13:00:00

标签: 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")
            "000"
        }

        println(test)

        super.onRouteRequest(request)
    }

}

但我总是在控制台和页面上看到“000”没有域

的cookie

更新:ResponseHeader添加的新cookie,但是如何在创建RH之前向RH添加新cookie? 存在像事件监听器这样的东西?喜欢postAction?

1 个答案:

答案 0 :(得分:1)

要添加新Cookie,您必须将其添加到会话响应中,如documentation中所述。

例如:

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

您尝试做的事情没有意义,因为您在收到浏览器的请求(包含浏览器所拥有的cookie)后尝试添加Cookie。这意味着如果你的代码工作,你总是在会话中拥有该值,所以不需要像你知道的那样检查会话。变得多余。