如何在Play Framework 2.4(Java)中使用兩個動作組合?在Play框架中使用@With註釋的動作組合(Java)
假設爲避免代碼重複,我有兩個操作可供使用:Auth
和LogData
。
如何在動作組合中使用兩者?
這將不能編譯,造成重複標註錯誤:
# play.PlayExceptions$CompilationException: Compilation error[error: duplicate annotation]
@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;
}
}
}
這只是一個骨架遺漏有些方法對這個問題沒有用處。
你是什麼意思 「它不會工作」 嗎?你會得到一個異常?只有一個動作運行?這兩個動作都沒有運行?如何實施「Auth」和「LogData」? – Cubic