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

时间:2018-04-29 12:25:02

标签: spring label

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

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用的是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

创建自定义错误页面并将其保存在resources / templates目录中。可以为不同的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 ;
    }
}