如何在 Spring 中编辑 Whitelabel 错误页面

Posted

技术标签:

【中文标题】如何在 Spring 中编辑 Whitelabel 错误页面【英文标题】:How to edit Whitelabel Error Page in Spring 【发布时间】:2018-10-09 17:22:11 【问题描述】:

我只想编辑 Spring White Label Page。我看到很多删除此页面的教程,但我只想在这里更改一些文本,例如错误 404 - 返回!有教程吗?

谢谢!

【问题讨论】:

【参考方案1】:

如果您使用的是 Spring Boot 1.4+ 版本,自定义错误页面可能会根据其相应的错误代码(例如 404.html)命名,并放置在静态文件的 /src/main/resources/public/error 目录中或/src/main/resources/templates/error 目录(如果使用模板引擎)。有关详细信息,请参阅Spring Boot and custom 404 error page。您也可以按照以下步骤实施自定义错误页面。

在 application.properties 文件中将 server.error.whitelabel.enabled 属性设置为 false。这将禁用错误页面并显示源自底层应用程序容器的错误页面。

server.error.whitelabel.enabled=false

创建自定义错误页面并将它们保存在资源/模板目录中。这些页面可以根据不同的 HTTP 状态代码创建和命名,例如:error-404、error-500 等。

创建一个新的 Controller 类来实现 ErrorController 接口并覆盖 getErrorPath 方法。为 getErrorPath 方法返回的路径创建一个映射。处理此映射的方法可以读取错误代码并返回相应的自定义错误页面。

@Controller
public class MyErrorController implements ErrorController  

    private static final String ERROR_PATH = "/error";

    @RequestMapping("/error")
    public String handleError(HttpServletRequest request) 
        Object status = 
            request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
        if (status != null) 
            Integer statusCode = Integer.valueOf(status.toString());

            if(statusCode == HttpStatus.NOT_FOUND.value()) 
                return "error-404";
            
            else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value())
                return "error-500";
            
        
        return "error";
    

    @Override
    public String getErrorPath() 
        return ERROR_PATH ;
    

【讨论】:

以上是关于如何在 Spring 中编辑 Whitelabel 错误页面的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot如何解决Whitelabel错误页面

在 Spring Boot Web 应用程序中刷新后的 Whitelabel 错误页面

Spring Boot Actuator 不工作 - Whitelabel 错误页面

尝试呈现 index.html 时的 Spring Boot + Thymeleaf =“Whitelabel 错误页面”

whitelabel 错误页面 404 spring boot angular 5

为啥我在运行简单的 Spring Boot 应用程序时总是得到状态为“404”的 Whitelabel 错误页面