如何在 Play 中的所有响应中设置标题!框架 2.7 (Java)
Posted
技术标签:
【中文标题】如何在 Play 中的所有响应中设置标题!框架 2.7 (Java)【英文标题】:How to set header in all responses in Play! framework 2.7 (Java) 【发布时间】:2020-04-11 15:38:02 【问题描述】:在旧版 Play!版本(如 2.3)可以修改所有响应的标题,如
public class WithMyPHeaderAction extends Action<WithMyPHeader>
@Override
public CompletionStage<Result> call(Context ctx)
ctx.response().setHeader("any", "value");
return delegate.call(ctx);
如何使用 Play! 2.7 没有弃用(ctx.response() 自 2.7 起已弃用),在 Java 中?
【问题讨论】:
【参考方案1】:您不需要操作来执行此操作。在控制器中,您可以:
return ok().withHeader("any", "value");
如果您必须在同一操作中执行此操作:
@Override
public CompletionStage<Result> call(Http.Request req)
return delegate.call(req).thenApply(r -> r.withHeader("any", "value"));
我正在使用play.mvc.Action.Simple
进行操作。我也在 Play 2.8.1 上测试过,应该也可以在 Play 2.7 上运行。
【讨论】:
我不想将 withHeader("any", "value") 添加到我的所有控制器结果中,但 Action 示例正是我想要的,谢谢!以上是关于如何在 Play 中的所有响应中设置标题!框架 2.7 (Java)的主要内容,如果未能解决你的问题,请参考以下文章
在 Play framework 2.3 中设置 cookie sameSite
如果响应正文中的 id 具有依赖性,如何使用预请求脚本在邮递员中设置 2 个集合变量?
如何在 canplay 事件中设置 HTMLMediaElement 的 .currentTime,调用 play 并避免调度 pause 事件?