gpt4 book ai didi

java - PlayFramework2.4.x 中的自定义错误页面

转载 作者:行者123 更新时间:2023-12-01 21:53:39 27 4
gpt4 key购买 nike

我做了这些,但仍然看不到我的自定义页面,请帮忙,

  1. 已添加 MyGlobal.java extends GlobalSettings

  2. 已添加 onHandlerNotFound覆盖:

    @Override
    public F.Promise<Result> onHandlerNotFound(RequestHeader request) {
    Logger.error("onHandlerNotFound!");
    return Promise.<Result> pure(Results.internalServerError(views.html.page404.render()));
    }

  3. 已添加application.global = "MyGlobal" in application.conf

但是什么也没发生,play2.4.6仍然用完devNotFound.scala.html的默认页面。在framework/play/src/main/scala/views/defaultpages/playframework源文件夹中

请帮忙。

最佳答案

在 Play 2.4.x 中执行此操作的方法是使用 HttpErrorHandler,如下所述:

https://www.playframework.com/documentation/2.4.x/JavaErrorHandling

您可以扩展 DefaultHttpErrorHandler 并添加返回自定义页面:

  1. https://www.playframework.com/documentation/2.4.x/JavaErrorHandling#Extending-the-default-error-handler
  2. https://www.playframework.com/documentation/2.4.x/api/java/play/http/DefaultHttpErrorHandler.html

考虑到您正在尝试覆盖默认的 404 页面,这是一个完整的示例:

package com.acme.controllers.handlers;

import play.*;
import play.api.OptionalSourceMapper;
import play.api.UsefulException;
import play.api.routing.Router;
import play.http.DefaultHttpErrorHandler;
import play.libs.F.*;
import play.mvc.Http.*;
import play.mvc.*;

import javax.inject.*;

public class ErrorHandler extends DefaultHttpErrorHandler {

@Inject
public ErrorHandler(Configuration configuration, Environment environment,
OptionalSourceMapper sourceMapper, Provider<Router> routes) {
super(configuration, environment, sourceMapper, routes);
}

@Override
protected Promise<Result> onNotFound(RequestHeader request, java.lang.String message) {
Logger.error("onHandlerNotFound!");
return Promise.pure(Results.internalServerError(views.html.page404.render()));
}
}

然后,您需要在 conf/application.conf 中进行如下配置:

play.http.errorHandler = "com.acme.controllers.handlers.ErrorHandler"

关于java - PlayFramework2.4.x 中的自定义错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34764746/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com