반응형
에러가 날 경우 에러페이지로 이동을 하게된다.
SpringBoot 경우는 에러가 나면 whitelabel 페이지로 이동하여 다음과 같은 에러를 발생시킨다.
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri Jun 29 18:29:14 KST 2018
There was an unexpected error (type=Not Found, status=404).
No message available
에러페이지를 생성하려면 아래 클래스를 생성하자.
/**
* 에러페이지 핸들러 클래스
*/
@Controller
public class ErrorPageHandler implements ErrorController {
@RequestMapping("/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-404";
}
if(statusCode == HttpStatus.FORBIDDEN.value()){
return "error-403";
}
}
return "error";
}
@Override
public String getErrorPath() {
return "/error";
}
}
"/error" URL 매핑으로 이동하게 되고 에러상태 값에 따라 각각의 VIEW를 호출하도록 수정했다.
만약 ViewResolver가 설정되어 있지 않다면 또 에러가 나는데 어떤 View도 설치되어 있지 않다면 Json으로 리턴하자.
(컨트롤러 위에 @RestController 를 붙이거나, 메서드에 @ResponseBody 붙이기)
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[SpringBoot] JPA 설정 및 테스트 (0) | 2018.07.04 |
---|---|
[SpringBoot] Controller 테스트 작성하기.(Mybatis 테스트 포함) (0) | 2018.07.03 |
[JAVA] DAO, DTO, VO 차이 (3) | 2018.07.01 |
[StringBoot] thymeleaf 사용중 POST 에서 403 에러 발생 (0) | 2018.06.30 |
[SpringBoot] front-end(html, css, js 등) 파일 변경 후 브라우저에서 적용이 안될 때 (0) | 2018.06.29 |
댓글