반응형
1. 작업환경
개발도구 : vscode
JDK 유형 : openjdk 17
스프링 부트 버전 : 3.0
개발환경 OS : windows 10 - 11
2. 들어가며
whitelabel error페이지를 수정하기 위해서 비활성화 처리 후 ErrorController를 상속 받아서 자신이 원하는 오류 페이지를 작성하면 된다.
3. application.properties 작성하기
resources 디렉토리 하위에 있는 파일인 application.properties 아래와 같이 작성을 하자
server.error.path 속성으로 지정된 오류 페이지를 맵핑을 하고, whitelabel 오류 페이지를 비활성화 처리를 하자
server.error.whitelabel.enabled=false
server.error.path=/error
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration
4. 오류 템플릿 파일 작성
resources/templates 디렉토리 하위에 아래와 같은 구조로 404.html,500.html, error.html 파일을 생성하자
5. 오류 핸들링 컨트롤러 만들기
ErrorController를 상속을 받아서 컨트롤러를 아래와 같이 만들도록 하자
@Controller
public class CustomError implements ErrorController{
@RequestMapping("/error")
public String error(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 "404";
}
else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) {
return "500";
}
}
return "error";
}
}
6. 확인해 보기
맵핑되지 않은 경로로 접근시 404.html를 반환을 하며, 내부서버 오류가 발생되면 500.html을 반환을 한다.
반응형
댓글