如何在 Play Framework 2.4 (Java) 上创建自定义 "Action Not Found" 页面

How to create custom "Action Not Found" page on Play Framework 2.4 (Java)

目前,如果我在我的播放框架应用程序上访问未定义的路径,默认值 "Action Not Found page" 出现。 我尝试自定义 "Action Not Found page" 以便不在浏览器上显示系统信息。

我查看了页面。

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 未显示,默认显示 "Action Not Found page"。 Logger.debug 也没有被调用。

我在 Scala 上找到了同样的问题,但没有任何答案。

How to handle "Action not found" with Dependency Injection Play framework 2.4

你能给我什么建议吗?

我自己解决了这个问题! 我注意到我应该将 ErrorHandler.java 添加到默认包或添加到另一个包并将其 class 路径写入 application.conf 像这样。

play.http.errorHandler = "com.example.ErrorHandler"

感谢您的支持!