如何在Play Framework 2.4(Java中)中使用两个动作合成?
假设为避免代码重复,我有两个操作可供使用:Auth
和LogData
。
如何在动作合成中同时使用它们?
这将无法编译,导致重复的注释错误:
#play.PlayExceptions $ CompilationException:编译错误[错误: 重复注释]
@play.db.jpa.Transactional()
@With(Auth.class)
@With(LogData.class)
public static Result callForumTeacher(String random, Long gameId){
//Action code
return ok(Json.toJson("data"));
}
这是Auth
和LogData
的实施方式的骨架:
public class CheckPausedGame extends Action.Simple {
@Override
public F.Promise<Result> call(Http.Context context) throws Throwable {
if (checkCondition(context)) {
return delegate.call(context);
} else {
F.Promise<Result> promise = F.Promise.promise(new F.Function0<Result>() {
@Override
public Result apply() throws Throwable {
return redirect("/paused");
}
});
return promise;
}
}
}
这只是一个骨架,省略了一些对这个问题无用的方法。
答案 0 :(得分:1)