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是在响应对象中设置的,而不是在请求中设置的。我不知道你是怎么把它们放在这里的。