乐闻世界logo
搜索文章和话题

如何在Spring Boot应用中自定义默认错误页面?

4 个月前提问
3 个月前修改
浏览次数15

1个答案

1

在Spring Boot中自定义默认错误页面主要有两种方法:通过实现ErrorController接口或利用ErrorAttributes来自定义错误信息。以下是详细步骤和例子:

方法一:实现ErrorController接口

  1. 创建一个类实现ErrorController接口: Spring Boot中提供了一个ErrorController接口,你可以通过实现这个接口来自定义错误处理。

    java
    import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; @Controller public class MyCustomErrorController implements ErrorController { @RequestMapping("/error") public String handleError(HttpServletRequest request) { Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); if (status != null) { int statusCode = Integer.parseInt(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"; } }
  2. 定义错误页面: 在src/main/resources/templates目录下创建错误页面,例如error-404.html, error-500.htmlerror.html

  3. 配置: 确保你的项目已经包含了模板引擎,如Thymeleaf。

方法二:使用ErrorAttributes自定义错误信息

  1. 自定义ErrorAttributes: 你可以提供自定义的ErrorAttributes来修改错误信息的内容。

    java
    import org.springframework.boot.web.servlet.error.DefaultErrorAttributes; import org.springframework.web.context.request.WebRequest; public class CustomErrorAttributes extends DefaultErrorAttributes { @Override public Map<String, Object> getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) { Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest, includeStackTrace); errorAttributes.put("message", "这是自定义的错误信息!"); return errorAttributes; } }
  2. 注册CustomErrorAttributes: 在你的配置类中注册这个自定义的ErrorAttributes

    java
    import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ErrorConfig { @Bean public CustomErrorAttributes errorAttributes() { return new CustomErrorAttributes(); } }
  3. 错误页面: 同样地,你需要在项目中准备相应的错误页面。

通过这两种方法,你可以灵活地处理和展示错误信息,提高应用程序的友好性和专业性。

2024年8月7日 22:13 回复

你的答案