관리 메뉴

공부한것들을 정리하는 블로그 입니다.

스프링MVC에서 return type이 String 일경우. 본문

Spring/공부

스프링MVC에서 return type이 String 일경우.

호 두 2017. 5. 12. 12:27
반응형

스프링 프레임워크를 사용하다보면 컨트롤러 단에서 리턴 타입(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-일경우 []

반응형
Comments