Playframework 2 - 任何行动设置会话变量(Playframework 2 - se

2019-09-16 09:40发布

我需要调用方法为所有请求 - 我tryed

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”在控制台页面上没有饼干域

更新:通过ResponseHeader新加入的cookie,但我怎么能RH创建之前RH添加新的Cookie? 存在有什么样的事件监听器? 像postAction?

Answer 1:

要添加新的cookies,您必须在它们的托特他会话响应,就像在描述文档 。

例如:

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

您尝试这样做是没有意义的,因为你想收到来自浏览器的请求(其中包含浏览器有饼干)后添加一个Cookie什么。 这意味着,如果你的代码工作,你会一直有一个值在会话中,始终,所以就没有必要检查会话吧,你会知道它的存在。 成为多余。



文章来源: Playframework 2 - set session variable for any Action