작성
·
338
0
안녕하세요 강사님
예전에 들었던 강의 다시 복습하면서 테스트해보고 있는데 http://localhost:8080/api/members/bad 를 포스트맨으로 실행하면 강의에서처럼 json 형태로 응답을 받지만 크롬에서 해당 url을 치면 BasicErrorController가 실행되는지 error/4xx.html 화면이 렌더링이 됩니다.
빈 ModelAndView를 리턴하는데 이게 어떻게 가능한 건지 잘 이해가 되지 않습니다.
sendError에 400을 설정해줘서 BasicErrorController가 알아서 error/4xx.html 화면을 렌더링해주는건가요?
답변 주시면 정말 감사드리겠습니다 !
답변 1
1
안녕하세요. chaelynjang님, 공식 서포터즈 y2gcoder입니다.
여기서 MyHandlerExceptionResolver 가 해주는 역할은 강의 자료 중 예외 상태 코드 변환에 가깝습니다.
이미 response.sendError()로 예외만 살짝 변경해서 서블릿으로 예외를 보냈기 때문에 WAS는 예외를 받아서 다시 서블릿 오류 페이지를 찾기 위해 BasicErrorController로 오게 됩니다.
여기서 accept가 Postman은 application/json 이기 때문에 json으로 응답, 일반 웹 페이지에서는 accept가 text/html이기 때문에 상태 코드에 따라 스프링 기본 오류 페이지를 호출한다고 이해해주시면 될 것 같습니다.
감사합니다.