Play2 Java Action Composition - 如何将多个动作串在一起?

时间:2014-09-02 16:25:18

标签: java filter playframework composition

我有这个控制器。

@With(SecuredAction.class)
public class Application extends Controller {
    public void hasSomeMethods(){ return ok("blah blah");}
}

注释指向什么基本上是安全问题的拦截器。

public class SecuredAction extends Action.Simple {

    @Override
    public F.Promise<Result> call(Http.Context context) throws Throwable {
        return delegate.call(context);
    }
}

如何在合成中添加第二个动作 - 比如一个名为LoggedAction的动作? 使用@With注释SecuredAction似乎不起作用,而@With只允许一个类。我是否需要使用自定义注释?

1 个答案:

答案 0 :(得分:2)

@With定义为:

public @interface With {
    java.lang.Class<? extends play.mvc.Action<?>>[] value();
}

所以这样的事情应该有效:

@With({SecuredAction.class, LoggedAction.class})
public class Application extends Controller {
    public Result hasSomeMethods(){ return ok("blah blah");}
}