0

在旧游戏中!版本(如 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 中?

4

1 回答 1

0

您不需要操作来执行此操作。在控制器中,您可以:

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.SimpleAction。我也在 Play 2.8.1 上测试过这个,应该也可以在 Play 2.7 上工作。

于 2020-04-12T10:20:15.257 回答