@Controller
public class ErrorHandler implements ErrorController {
private String viewPath = "thymeleaf/error/";
@GetMapping("/error")
public String error(HttpServletRequest request) {
Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); // 상태 코드 (예: 404, 500)
if (status != null) {
int statusCode = Integer.parseInt(status.toString());
if(statusCode == HttpStatus.NOT_FOUND.value()) {
return viewPath + "404";
} else if (statusCode == HttpStatus.FORBIDDEN.value()) {
return viewPath + "500";
}
}
return viewPath + "other";
}
}
/*HttpStatus.FORBIDDEN.value() // 403 : 금지
*HttpStatus.METHOD_NOT_ALLOWED.value() // 405 : 비 허가 된 방식
*HttpStatus.NOT_FOUND.value() // 404 : 찾을 수 없음
*HttpStatus.REQUEST_TIMEOUT.value() // 408 : 요청 시간 초과
*HttpStatus.INTERNAL_SERVER_ERROR.value() // 500 : 인터넷 서버 오류
*/