应用全局设置
Global 对象
你可以在项目中定义一个 Global 对象来控制应用的全局设置。这个对象必须在默认(空)包中定义并扩展自 GlobalSettings。
1. import play.api._
3. object Global extends GlobalSettings {
5. }
提示:你也可以在
application.global设置字段中指定一个自定义GlobalSettings实现的类名。
关联应用启动和停止事件
你可以重写 onStart 和 onStop 方法来获取应用生命周期中的事件通知:
1. import play.api._
3. object Global extends GlobalSettings {
5. override def onStart(app: Application) {
6. Logger.info("Application has started")
7. }
9. override def onStop(app: Application) {
10. Logger.info("Application shutdown...")
11. }
13. }
提供应用错误讯息页
当你的应用出现一个异常,这将会引发 onError 操作。默认使用内部框架的错误讯息页:
1. import play.api._
2. import play.api.mvc._
3. import play.api.mvc.Results._
4. import scala.concurrent.Future
6. object Global extends GlobalSettings {
8. override def onError(request: RequestHeader, ex: Throwable) = {
9. Future.successful(InternalServerError(
10. views.html.errorPage(ex)
11. ))
12. }
14. }
处理丢失的动作和绑定错误
如果框架无法为请求找到一个 Action,这将会引发 onHandlerNotFound 操作:
1. import play.api._
2. import play.api.mvc._
3. import play.api.mvc.Results._
4. import scala.concurrent.Future
6. object Global extends GlobalSettings {
8. override def onHandlerNotFound(request: RequestHeader) = {
9. Future.successful(NotFound(
10. views.html.notFoundPage(request.path)
11. ))
12. }
14. }
如果获取的路由无法绑定请求的参数,这将会引发 onBadRequest 操作:
1. import play.api._
2. import play.api.mvc._
3. import play.api.mvc.Results._
4. import scala.concurrent.Future
6. object Global extends GlobalSettings {
8. override def onBadRequest(request: RequestHeader, error: String) = {
9. Future.successful(BadRequest("Bad Request: " + error))
10. }
12. }
