개발 시 많이 보게 되는 페이지..
에러가 발생하게 되면 해당 에러에 맞는 에러 페이지를 보여주도록 설정한다.
에러 페이지를 관리 할 Controller를 생성하여 ErrorController 인터페이스를 상속받아 에러 컨트롤러를 생성한다.
package com.jun.study
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
@Controller
publi class ErrorController implements ErrorController {
@Override
public String getErrorPath() {
return null;
}
@GetMapping("/error")
public String handleError(HttpServletRequest request) {
Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
if(status != null){
int statusCode = Integer.valueOf(status.toString());
if(statusCode == HttpStatus.NOT_FOUND.value()) {
return "error/404error";
} else {
return "error/error";
}
}
return "error/error";
}
}
ErrorController 인터페이스를 상속 받고, getErrorPath() 메서드를 재정의를 한다.
SpringBoot 2.3.x 부터는 server.error.path 속성(/error)을 사용하여 사용자 지정 경로(에러 페이지)를 지정한다. getErrorPath() 메서드는 ErrorController인터페이스에서 제거된 것이 아니기 때문에, 재정의는 필수이다. 해당 코드는 무시가 되고, null을 반환하면 된다. |
thymeleaf를 사용하기 때문에, resource - templates- error 경로에 html 파일을 생성하도록 한다.
각각 취향에 맞게 에러페이지를 생성을 하거나, 혹은 아래의 무료 템플릿 링크가 있다.
https://freefrontend.com/500-error-page-html-templates/)
500 Error Page HTML Templates
Collection of free 500 error page HTML templates from codepen and other resources. Update of January 2020 collection. 13 new items.
freefrontend.com
참고 자료
'Backend > SPRINGBOOT' 카테고리의 다른 글
[SpringBoot] SpringBoot, JWT 오류 The signing key's size is 240 bits which is not secure enough for the HS256 algorithm (0) | 2022.11.14 |
---|---|
[SpringBoot] 게시판 만들기 9. 검색 (0) | 2022.11.01 |
[SpringBoot] 게시판 만들기 9. 페이징 처리 (0) | 2022.11.01 |
[SpringBoot] 게시판 만들기 8. 파일 업로드 (0) | 2022.11.01 |
[SpringBoot] 게시판 만들기 7. 처리 메시지 (0) | 2022.10.31 |