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

3

我查看了各种来源,但未找到在处理程序未找到时呈现特定页面的方法。

我已经到达了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(
      ??
    ))
  }

}

我不确定在该代码中的"??"处添加什么内容才能在找不到处理程序时呈现特定的HTML文档。我尝试了几种方法,但总是出现错误。
谢谢。
2个回答

4
创建一个名为 views/notFound.scala.html 的模板来渲染 HTML 页面。然后,像在任何其他操作中一样渲染它。
override def onHandlerNotFound(request: RequestHeader) = {
  Future.successful(NotFound(
    views.html.notFound()
  ))
}

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)
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接