[Spring] Controller 에서 ModelAndView 와 String 으로 리턴할때 차이
HighCode/Java
2016. 12. 22. 14:33
Controller 에서 View로 값을 넘길 때, ModelAndView 혹은 String으로 반환형을 줄 수 있다.
이 때 어떤 차이점이 있는지 궁금하여 검색을 하던중 한 블로그에서 좋은 글을 발견했다.
소스코드 : STS케플러 버전에서 Spring MVC Project를 생성하면 아래와 같은 HomeController 코드가 기본으로 생긴다. 보시다시피 한국에서 가장 많이 쓰이는(?) ModelAndView 반환 형식이 아니다 String이다.
그럼 이 녀석은 어떻게 ModelAndView로 되는걸까?
DispatcherServlet을 통하는것은 동일 하다. 이후 적용되는 ViewNameMethodReturnValueHandler를 참고하면
String 형식일 경우, mavContainer 에 ViewName을 셋팅하는 작업을 하고 있음을 볼 수 있다. 이 코드에서 추가로 볼 수 있는 결국에 이렇게 mavContainer에 셋팅 된 이후
RequestMappingHandlerAdapter에서
ModelMap model = mavContainer.getModel();
ModelAndView mav = new ModelAndView(mavContainer.getViewName(), model);
으로 ModeAndView를 확정한다.
출처 : dev.bistro님의 블로그(스프링MVC에서 return type이 String 일경우)
'HighCode > Java' 카테고리의 다른 글
| [SPRING] JSP 주석 정리 (0) | 2018.09.06 |
|---|---|
| [Spring] 이클립스(eclipse) 톰캣 연동 오류 총 정리 (3) | 2018.08.25 |
| [Spring] Controller 에서 ModelAndView 와 String 으로 리턴할때 차이 (0) | 2016.12.22 |
| [Spring:Error] The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path (0) | 2016.12.21 |
| [JSTL] Map에 있는 elements들을 원하는 순서대로 출력 (0) | 2016.12.21 |
| [Spring] Restful한 스프링 @ResponseBody vs @RestController (1) | 2016.12.21 |