应用全局设置
Global 对象
你可以在项目中定义一个 Global 对象来控制应用的全局设置。这个对象必须在默认(空)包中定义并扩展自 GlobalSettings。
import play.api._object Global extends GlobalSettings {}
提示:你也可以在
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 操作。默认使用内部框架的错误讯息页:
import play.api._import play.api.mvc._import play.api.mvc.Results._import scala.concurrent.Futureobject 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.Futureobject 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.Futureobject Global extends GlobalSettings {override def onBadRequest(request: RequestHeader, error: String) = {Future.successful(BadRequest("Bad Request: " + error))}}
