如何在Play 2.2中设置Play Framework 404(OnHandlerNotFound)页面?

时间:2013-12-30 03:33:12

标签: java scala frameworks playframework playframework-2.2

所以我查了一下,我查看了各种来源,但是当找不到处理程序时,我找不到渲染特定页面的方法。

我已经在Global.scala中找到了这一点:

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

object Global extends GlobalSettings {

  override def onHandlerNotFound(request: RequestHeader) = {
    Future.successful(NotFound(
      ??
    ))
  }

}

我只是不确定在“??”添加什么在该代码中,在找不到Handler时呈现特定的html文档。我尝试过几种方法,但总会出现错误。

感谢。

2 个答案:

答案 0 :(得分:4)

创建views/notFound.scala.html模板以呈现HTML页面。然后像在任何其他操作中使用模板一样呈现它。

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

答案 1 :(得分:0)

如果您只是想以不同的方式处理产品模式:

  override def onHandlerNotFound(request: RequestHeader): Future[Result] =
    Play.maybeApplication match {
      case Some(app) if app.mode == Mode.Prod => Future.successful(Ok(views.html.notFound()))
      case _ => super.onHandlerNotFound(request)
    }