繁体   English   中英

如何在Play Framework 2.4(Java)上创建自定义“未找到操作”页面

[英]How to create custom “Action Not Found” page on Play Framework 2.4 (Java)

当前,如果我访问播放框架应用程序上的未定义路径,则会显示默认的“未找到操作页面”。 我试图制作自定义的“未找到操作页面”,以免在浏览器上显示系统信息。

我检查了页面。

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,并且会显示默认的“未找到操作页面”。 Logger.debug也没有被调用。

我为Scala找到了相同的问题,但没有任何答案。

如何使用依赖注入播放框架2.4处理“找不到动作”

你能给我什么建议吗?

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

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

谢谢您的支持!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM