gpt4 book ai didi

java - 减少 Play 2 Controller 方法中的样板代码

转载 作者:行者123 更新时间:2023-11-30 07:50:59 25 4
gpt4 key购买 nike

我有一个 Play Controller ,它有几个非常相似的方法。我想知道如何减少样板代码:

public static Result foo() {
// boilerplate
if (!PREVIEW) {
return redirect(routes.Application.login());
}
// other code
...
return ok("...");
}

public static Result bar() {
// boilerplate
if (!PREVIEW) {
return redirect(routes.Application.login());
}
// other code
...
return ok("...");
}

PREVIEW 是配置设置的简写。

最佳答案

我创建了一个这样的操作:

public class PreviewAction extends Action.Simple {
public F.Promise<Result> call(Http.Context ctx) throws Throwable {
if (!PREVIEW) {
return F.Promise.pure(redirect(routes.Application.login()));
}
return delegate.call(ctx);
}
}

现在我可以在其他操作上使用注释,它的工作方式就像以前一样:

@With(PreviewAction.class)
public static Result foo() {
...
}

更多信息:https://www.playframework.com/documentation/2.4.x/JavaAsync

感谢 Tunaki 为我指明了正确的方向。

关于java - 减少 Play 2 Controller 方法中的样板代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33346278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com