アクション合成が使えます。Play 2.4 ドキュメント ( https://www.playframework.com/documentation/2.4.x/ScalaActionsComposition ) から:
import play.api.mvc._
object LoggingAction extends ActionBuilder[Request] {
def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = {
Logger.info("Calling action")
block(request)
}
}
次に、コントローラーで:
def index = LoggingAction {
Ok("Hello World")
}
これは、リクエストごとにコードを実行する必要があるときに行うことです。そして実際には、カスタムアクションを使用するかどうかによって、これが実行されるリクエストを制御できます。
def index = Action {
Ok("Hello World")
}
これがお役に立てば幸いです。
編集
あなたが 2.0 準拠のソリューションを望んでいることを読みました。これは Play 2.0 で利用できます。これはドキュメントです: https://www.playframework.com/documentation/2.0.x/ScalaActionsComposition