Error handling 如何处理;“未找到操作”;使用依赖注入播放框架2.4
我在注入依赖概念上重写classError handling 如何处理;“未找到操作”;使用依赖注入播放框架2.4,error-handling,playframework,dependency-injection,Error Handling,Playframework,Dependency Injection,我在注入依赖概念上重写classHttpErrorHandler,并尝试处理路由页面。当URL的页面路由不正确时,我不需要显示操作未找到页面,但它必须通过在HttpPageErrorHandler的view.html.error.notFoundPage()上指定页面路由来显示。参数中未包含尝试访问URL时的下图 http://localhost:9000/adminlanding 路由页面指定为 GET/adminlanding/:userId/:ip/:dateFound/controlle
HttpErrorHandler
,并尝试处理路由页面。当URL的页面路由不正确时,我不需要显示操作未找到
页面,但它必须通过在HttpPageErrorHandler的view.html.error.notFoundPage()
上指定页面路由来显示。参数中未包含尝试访问URL时的下图
http://localhost:9000/adminlanding
路由页面指定为
GET/adminlanding/:userId/:ip/:dateFound/controllers.DashboardAdmin.landing(userId:String,ip:String,dateFound:String)
未找到HttpPageErrorHandler句柄操作
class HttpPageErrorHandler @Inject() (router: Router) extends HttpErrorHandler {
private def errorHandler = Play.maybeApplication.fold[HttpErrorHandler](DefaultHttpErrorHandler)(_.errorHandler)
def onClientError(request: RequestHeader, statusCode: Int, message: String) : Future[Result]= {
statusCode match {
case Status.NOT_FOUND =>
Future.successful(NotFound(views.html.errors.notFoundPage(request)))
case clientError if statusCode >= 400 && statusCode < 500 =>
Future.successful(Forbidden(views.html.errors.notFoundPage(request)))
}
}
def onServerError(request: RequestHeader, exception: Throwable): Future[Result] = {
errorHandler.onServerError(request, exception)
}
}
类HttpPageErrorHandler@Inject()(路由器:路由器)扩展HttpErrorHandler{
private def errorHandler=Play.maybeaapplication.fold[HttpErrorHandler](DefaultHttpErrorHandler)(uwu.errorHandler)
def ONCLIENTROR(请求:RequestHeader,状态代码:Int,消息:String):未来[结果]={
状态码匹配{
未找到案例状态=>
Future.successful(NotFound(views.html.errors.notFoundPage(request)))
如果状态代码>=400&&statusCode<500=>
Future.successful(禁止(views.html.errors.notFoundPage(请求)))
}
}
def onServerError(请求:RequestHeader,异常:Throwable):未来[结果]={
errorHandler.onServerError(请求、异常)
}
}
Application.conf声明调用注入类的配置
play.http.HttpErrorHandler=RequestHandler
使用sbt run运行命令行后
仍显示未找到操作
页面。如何
play.http.errorHandler = "global.HttpPageErrorHandler"
或者不管你的包裹是什么