【问题标题】:How to set header in all responses in Play! framework 2.7 (Java)如何在 Play 中的所有响应中设置标题!框架 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 中?

【问题讨论】:

    标签: playframework play-framework-2.7


    【解决方案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 示例正是我想要的,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-06-07
    • 2015-10-18
    • 2012-01-06
    • 1970-01-01
    • 2018-09-12
    • 2011-08-31
    • 2021-04-28
    • 1970-01-01
    相关资源
    最近更新 更多