[스프링부트] 에러 페이지 처리
스프링 부트는 에러 페이지를 기본적으로 제공한다.
-
/error
: 기본 오류 페이지 URI -
BasicErrorController
: 기본 오류페이지 URI(/error)를 맵핑하는 기본 컨트롤러
개발자는 오류 페이지만 등록하면 된다
-
BasicErrorController
가 제공하는 룰과 우선순위에 따라 페이지를 등록
우선순위
- 뷰 템플릿 - 정적리소스 - error뷰 이름 순서
- 구체적인 404가 대략적인 4xx보다 우선
- 뷰 템플릿
resources/templates/error/500.html
resources/templates/error/5xx.html
- 정적 리소스
resources/static/error/400.html
resources/static/error/404.html
resources/static/error/4xx.html
- error 뷰 이름
resources/templates/error.html
에러정보 뷰 출력
-
BasicErrorController
는 에러 정보를 바인딩해서 넘겨준다
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
</head>
<body>
<li>오류 정보</li>
<ul>
<li th:text="|timestamp: ${timestamp}|"></li>
<li th:text="|path: ${path}|"></li>
<li th:text="|status: ${status}|"></li>
<li th:text="|message: ${message}|"></li>
<li th:text="|error: ${error}|"></li>
<li th:text="|exception: ${exception}|"></li>
<li th:text="|errors: ${errors}|"></li>
<li th:text="|trace: ${trace}|"></li>
</ul>
</body>
</html>
-
exception
,errors
,trace
,message
는 추가설정을 하지 않으면 null로 표출된다
server:
error:
include-message: always
include-binding-errors: always
include-exception: true
include-stacktrace: on_param