由于源自this question的原因,我需要在scala中编写一个可以在java控制器中使用的自定义动作组合,如下所示:
LogAction.scala(Scala自定义动作合成):
import play.api.mvc._
class LogAction extends ActionBuilder[Request] {
def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = {
Logger.info("Calling action")
block(request)
}
}
Application.java(Java控制器):
import LogAction;
import play.mvc.Controller;
import play.mvc.Result;
import play.mvc.With;
public class Application extends Controller {
@With(LogAction.class)
public static Result index() {
return ok(views.html.admin.main.render());
}
}
这样的事情可能吗?如果是,那怎么样?最终目标是使用此特定操作组合记录请求和响应主体。