在Spring Boot中自定义默认错误页面主要有两种方法:通过实现ErrorController
接口或利用ErrorAttributes
来自定义错误信息。以下是详细步骤和例子:
方法一:实现ErrorController
接口
-
创建一个类实现
ErrorController
接口: Spring Boot中提供了一个ErrorController
接口,你可以通过实现这个接口来自定义错误处理。javaimport 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"; } }
-
定义错误页面: 在
src/main/resources/templates
目录下创建错误页面,例如error-404.html
,error-500.html
和error.html
。 -
配置: 确保你的项目已经包含了模板引擎,如Thymeleaf。
方法二:使用ErrorAttributes
自定义错误信息
-
自定义
ErrorAttributes
: 你可以提供自定义的ErrorAttributes
来修改错误信息的内容。javaimport 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; } }
-
注册
CustomErrorAttributes
: 在你的配置类中注册这个自定义的ErrorAttributes
。javaimport org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ErrorConfig { @Bean public CustomErrorAttributes errorAttributes() { return new CustomErrorAttributes(); } }
-
错误页面: 同样地,你需要在项目中准备相应的错误页面。
通过这两种方法,你可以灵活地处理和展示错误信息,提高应用程序的友好性和专业性。
2024年8月7日 22:13 回复