Documentation

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

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

§Global オブジェクト

プロジェクト内に Global オブジェクトを定義すると、アプリケーションのグローバル設定を行うことができます。このオブジェクトは (空の) デフォルトパッケージに定義される必要があります。

import play.api._

object Global extends GlobalSettings {

}

Tip: 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 操作が呼び出されます。デフォルトでは、フレームワークに用意されている汎用的なエラーページを表示するようになっています。

import play.api._
import play.api.mvc._
import play.api.mvc.Results.__

object Global extends GlobalSettings {

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

§アクションが存在しない場合のエラー処理

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

import play.api._
import play.api.mvc._
import play.api.mvc.Results.__

object Global extends GlobalSettings {

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

また、ルートは存在するものの、リクエストパラメータをバインドできなかった場合は、onBadRequest 操作が呼び出されます。

import play.api._
import play.api.mvc._
import play.api.mvc.Results.__

object Global extends GlobalSettings {

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

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