ModelAndView
에 viewname을 설정하지 않으니 DispatcherServlet
에서 default viewname을 설정해 주었는데 viewname에 해당하는 view가 존재하지 않았기 때문이다.@Controller
+ View 반환Controller
에서 View 이름을 반환해주면 DispatcherServlet
에서 View Resolver
를 통해 View 이름에 해당하는 View를 찾아 반환해주게 된다.@Controller
+ Data 반환@Controller
를 사용하는 경우는 View
반환에 초점이 맞추어져 있다.View
가 아닌 Data(ex. Json)
를 받아야 하는 경우가 있다.@ResponseBody
를 이용하여 VIewResolver
가 아닌 HttpMessageConverter
가 동작하도록 해야 한다.@RestController
+ Data 반환@RestController
는 @Controller
+ @ResponeBody
이다.DispatcherServlet
으로 들어온다DispatcherServlet.doDispatch()
호출HandlerAdpater(RequestMappingHandlerAdapter)
에게 요청을 처리하도록 handle()
메서드 호출컨트롤러 메서드 실행 후 …