2

有没有办法在保留已添加到其中的其他状态的同时向会话添加状态?对于用例,请考虑来自http://www.playframework.com/documentation/2.1.3/ScalaActionsComposition的示例之一

 def Authenticated(f: (User, Request[AnyContent]) ⇒ Result) = {
    Action { request ⇒
      val result = for {
        id ← request.session.get("user")
        user ← User.find(id)
      } yield f(user, request).withSession(request.session + "newKey" -> "newValue")
      result getOrElse Unauthorized
    }
  }
  def index = Authenticated { (user, request) ⇒
    Ok("Hello " + user.name).withSession(request.session + "oldKey" -> "oldValue")
  }

我在示例中添加了两个“.withSession”调用。在我的测试中,我还没有找到一种方法来添加“newKey”而不清除“oldKey”。

我考虑过的解决方案都很丑陋。目前我的解决方法是在我自己的 cookie 中保留“newKey”和相关状态,但似乎很麻烦。有没有办法将它添加到 Play 会话中?

4

0 回答 0