STATUS CODE에는 1XX ~ 5XX까지 다양하게 있다. 이때, 발생되는 error에 따라 다른 작업을 처리하도록 할 수 있다.
주로, error 종류에 따라 다른 페이지를 띄우기 위해 사용된다.
1. 응답에 따라 처리할 로직 구현
아래 예시에서는 500 Error일 경우, 받아온 메시지를 띄우고, 404 Error인 경우 페이지가 없다는 알림을 띄우도록 했다.
$.ajax({
url:'${root}/user/list',
type: 'GET',
contentType:'application/json;charset=utf-8',
dataType:'json',
success: function(data){
makeList(data);
},
error: function(xhr, status, error){
console.log("상태값 : " + xhr.status + "\tHttp 에러메시지 : " + xhr.responseText);
},
statusCode: {
500: function(msg){
alert(msg.responseText);
//location.href="/error/e500";
},
404: function(){
alert("페이지 없음");
}
}
});
2. 응답코드 보내기
성공하면 OK(200)을 보낸다. 여기서는 테스트를 위해 500 Error를 발생시켜보았다.
@GetMapping("/list")
public @ResponseBody ResponseEntity<?> list() {
List<UserDto> users = null;
try {
users = userService.listUser();
} catch (Exception e) {
e.printStackTrace();
}
//test code
users = null;
if(users==null) {
return new ResponseEntity<String>("에러발생!", HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<List<UserDto>>(users, HttpStatus.OK);
}
'Programming > Spring' 카테고리의 다른 글
SpringBoot(2) - MyBatis 사용하기 (0) | 2022.06.10 |
---|---|
SpringBoot(1) - SpringBoot 시작하기 (0) | 2022.06.10 |
Spring(12) - REST API1: JSON데이터 넘기기 (0) | 2022.06.08 |
Spring(11) - Spring & Mybatis 실습2 : Transaction처리 (0) | 2022.05.07 |
Spring(11) - Spring & Mybatis 실습1 : Spring과 Mybatis 연결하기 (0) | 2022.05.07 |