【发布时间】:2019-08-16 07:44:56
【问题描述】:
我正在尝试将应用从 Play 2.7 更新。我看到现在通过 Http.Context 访问会话对象已被弃用。相反,我必须使用 Http.Request 对象。此外,在我可以立即更改 Session 对象之前 - 现在看来我必须创建一个新的 Session 和 add to the Result by myself。但是如何在我无法访问 Result 对象的 Action 组合中实现这一点?
Action 组合可能如下所示:
public class VerboseAction extends play.mvc.Action.Simple {
public CompletionStage<Result> call(Http.Request req) {
...
return delegate.call(req);
}
}
我在这里看不到如何向 Session 添加内容!
编辑:
我找不到简单的解决方案,只能找到第二个操作注释的解决方法。可以通过.thenApply 访问 Result 对象并附加新的 Session 对象。
public CompletionStage<Result> call(Http.Request request) {
return delegate.call(request).thenApply(result -> {
Http.Session session = ... change the session
return result.withSession(session);
});
}
如果有人对如何直接在动作组合中更改会话有更好的想法,请随时回答。
【问题讨论】:
标签: java playframework