Documentation

You are viewing the documentation for the 2.2.0 release in the 2.2.x series of releases. The latest stable release series is 2.4.x.

§アプリケーションのグローバル設定

§Global オブジェクト

プロジェクト内に Global オブジェクトを定義して、アプリケーションのグローバル設定をカスタマイズすることができます。このオブジェクトは、デフォルトパッケージ (無名パッケージ) 内に定義されている必要があります。

import play.api._

object Global extends GlobalSettings {

}

Tip: Global という名前のオブジェクトを使う代わりに、application.global という設定キーに GlobalSettings の実装クラスの名前を指定するという方法もあります。

§アプリケーションの開始と停止をフックする

onStartonStop メソッドをオーバーライドして、アプリケーションのライフサイクルにおけるイベント通知を受け取ることができます。

import play.api._

object Global extends GlobalSettings {

  override def onStart(app: Application) {
    Logger.info("Application has started")
  }

  override def onStop(app: Application) {
    Logger.info("Application shutdown...")
  }

}

§アプリケーションのエラーページを提供する

アプリケーションで例外が発生した場合、 onError が呼び出されます。デフォルトの onError は、フレームワーク標準のエラーページを出力します。

import play.api._
import play.api.mvc._
import play.api.mvc.Results._
import scala.concurrent.Future

object Global extends GlobalSettings {

  override def onError(request: RequestHeader, ex: Throwable) = {
    Future.successful(InternalServerError(
      views.html.errorPage(ex)
    ))
  }

}

§アクションが存在しない、またはバインドエラーが発生したときの処理

フレームワークがリクエストに対応する Action を見つけられなかった場合、 onHandlerNotFound が呼び出されます。

import play.api._
import play.api.mvc._
import play.api.mvc.Results._
import scala.concurrent.Future

object Global extends GlobalSettings {

  override def onHandlerNotFound(request: RequestHeader) = {
    Future.successful(NotFound(
      views.html.notFoundPage(request.path)
    ))
  }

}

フレームワークが受け取ったリクエストから実行すべきアクションへのルートを見つけたものの、必要なリクエストパラメータをバインドできなかった場合、 onBadRequest が呼び出されます。

import play.api._
import play.api.mvc._
import play.api.mvc.Results._
import scala.concurrent.Future

object Global extends GlobalSettings {

  override def onBadRequest(request: RequestHeader, error: String) = {
    Future.successful(BadRequest("Bad Request: " + error))
  }

}

次ページ: リクエストインターセプター