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
の実装クラスの名前を指定するという方法もあります。
§アプリケーションの開始と停止をフックする
onStart
と onStop
メソッドをオーバーライドして、アプリケーションのライフサイクルにおけるイベント通知を受け取ることができます。
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))
}
}
次ページ: リクエストインターセプター