Play2 Java Action 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?? Аннотирование SecuredAction с помощью @With, похоже, не работает, а @With допускает только один класс. Нужно ли использовать пользовательскую аннотацию?


person JasonG    schedule 02.09.2014    source источник


Ответы (1)


@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");}
}
person Salem    schedule 05.09.2014
comment
Спасибо - я разобрался - забыл вернуться и закрыть это. Понял, что не часто делаю массивы: P - person JasonG; 06.09.2014