目前,如果我在我的播放框架应用程序上访问未定义的路径,则默认"未找到操作页面"出现。 我试图制作自定义"未找到行动页面"为了不在浏览器上显示系统信息。
我检查了页面。
https://www.playframework.com/documentation/2.4.x/JavaErrorHandling
我实现了以下代码。
package controllers;
import play.Logger;
import play.http.HttpErrorHandler;
import play.mvc.*;
import play.mvc.Http.*;
import play.libs.F.*;
import views.html.*;
public class ErrorHandler implements HttpErrorHandler {
public Promise<Result> onClientError(RequestHeader request, int statusCode, String message) {
Logger.debug("onClientError");
return Promise.<Result> pure(
Results.badRequest(error.render())
);
}
public Promise<Result> onServerError(RequestHeader request, Throwable exception) {
Logger.debug("onServerError");
return Promise.<Result> pure(
Results.internalServerError("A server error occurred: " + exception.getMessage())
);
}
}
但是,没有显示error.scala.html,默认情况下&#34;未找到操作页面&#34;出现。 Logger.debug也没有被召唤。
我为Scala找到了同样的问题,但没有任何答案。
How to handle "Action not found" with Dependency Injection Play framework 2.4
你可以给我任何建议吗?答案 0 :(得分:3)
我自己解决了这个问题! 我注意到我应该将ErrorHandler.java添加到默认包中或添加到另一个包并将其类路径写入application.conf,如下所示。
play.http.errorHandler = "com.example.ErrorHandler"
感谢您的支持!