공부한것들을 정리하는 블로그 입니다.
스프링MVC에서 return type이 String 일경우. 본문
스프링 프레임워크를 사용하다보면 컨트롤러 단에서 리턴 타입(Return type)이 ModelAndView 를 쓰는 경우도 있고 String 을 쓰는 경우도 있을것이다.
이 둘의 차이점은 간단하다. String 을 써도 결국에는 mavContrainer 단에서 viewName 을 세팅하게 된다.
즉, String 으로 쓰는것이 더 간결한것 뿐이다.
출처: http://yangyag.tistory.com/162 [Hello Brother!]
스프링 컨트롤러에서 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를 확정한다.
출처: http://bistros.tistory.com/entry/스프링MVC에서-return-type이-String-일경우 []
'Spring > 공부' 카테고리의 다른 글
스프링 인터셉터와 필터 (0) | 2017.08.12 |
---|---|
토비의 스프링 3.1 (0) | 2017.05.14 |
mvc model (0) | 2017.05.14 |
웹 소켓 - 캐치마인드(Catch Mind) 만들기 (0) | 2017.05.14 |
유튜브 동영상을 슬라이더에 넣으려면? (0) | 2017.05.13 |
*-mapper에 있는 <ResultMap>안의 속성 (0) | 2017.05.12 |
뷰 이름 명시적 지정 :ModelAndView와 String 리턴 타입 (0) | 2017.05.12 |
Ajax로 ID 중복 체크.[Spring] (0) | 2017.05.12 |