Java 减少游戏2中的样板文件控制器方法

Java 减少游戏2中的样板文件控制器方法,java,playframework-2.0,Java,Playframework 2.0,我有一个游戏控制器,它有两种非常相似的方法。我想知道如何减少样板文件: public static Result foo() { // boilerplate if (!PREVIEW) { return redirect(routes.Application.login()); } // other code ... return ok("..."); } public static Result bar() { // boilerplate if (

我有一个游戏控制器,它有两种非常相似的方法。我想知道如何减少样板文件:

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("...");
}

预览
是配置设置的简写。

我创建了一个如下操作:

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);
    }
}
更多信息:


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

我不知道怎么玩,但也许你可以添加一个拦截器,它可以执行
if
检查(我会用Spring这样做)?@Tunaki听起来不错。如何在Play2框架中仅对一个控制器使用拦截器?我从未使用过Play,因此只能指向@biesior Will do。“这需要两天的时间,所以我可以回答我自己的问题。”比西尔说。显然,2天的限制已经取消了。
@With(PreviewAction.class)
public static Result foo() {
  ...
}