sch*_*hub 2 scala playframework playframework-2.0
我试图在播放会话中添加一个简单的字符串,但它不起作用.为了测试,我写了一个小控制器函数,首先在会话中添加一个字符串,然后打印会话包含的所有元素,但它总是为空.
def foo = Action { request =>
request.session + ("token", "foobar")
request.session.data.foreach{ keyVal => println("\tkey value pair: " + keyVal._1 + ", " + keyVal._2)}
Ok("just a test")
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?我需要通过application.conf或其他东西激活一些东西吗?
实际上,会话也是一个不可变的结构.
确实session存储在request一个对象中的对象有一个+方法,后者通过返回一个新的实例来尊重不变性范例Session.保持request.session不变.
进一步思考,我们可以断言更新的会话在另一个请求 - 响应事务中重用时只有一个意义......
因此,更新会话的方法是在构建响应时(Result在Play中)更新它,如下所示:
Ok("just a test").withSession(request.session + ("token", "foobar"))
Run Code Online (Sandbox Code Playgroud)
这将在您的cookie中添加新的会话字段,该字段将在下一个事务中可用(即请求 - 响应).
| 归档时间: |
|
| 查看次数: |
1354 次 |
| 最近记录: |