본문으로 바로가기

[Spring] ModelAndView와 ViewResolver

category Program/Spring Framework 2015. 12. 21. 13:14

1. ModelAndView

① Controller 처리 결과 후 응답할 view와 view에 전달할 값을 저장

② 생성자

- ModelAndView(String viewName) : 응답할 view 설정

- ModelAndView(String viewName, Map values) : 응답할 view와 view로 전달할

값들을 저장 한 Map 객체

- ModelAndView(String viewName, String name, Object value) : 응답할 view이름,

view로 넘길 객체의 name-value

③ 주요 메소드

- setViewName(String view) : 응답할 view이름을 설정

- addObject(String name, Object value) : view에 전달할 값을 설정

· requestScope에 설정됨

- addAllObject(Map values) : view에 전달할 값을 Map에 name-value로 저장하여

한번에 설정

· requestScope에 설정됨

④ Redirect 방식 전송

- view이름에 redirect: 접두어 붙인다.

- ex) mv.setViewName("redirect:/welcome.html");

 

 

2.ViewResolver

⑴ Controller가 넘긴 view 이름을 통해 알맞은 view를 찾는 역할

① Controller는 ModelAndview 객체에 응달할 view이름을 넣어 리턴

② DispachServlet은 ViewResolver에게 응답할 view를 요청한다

③ ViewResolver는 View 이름을 이용해 알맞은 view 객체를 찾아

DispatcherServlet에게 전달

⑵ ViewResovler - Spring 설정 파일에 등록한다.

⑶ InternalResourceViewResolver

- JSP나 HTML등의 내부 자원을 이용해 뷰 생성

- InternalResourceView를 기본 뷰로 사용

⑷ BeanNameViewResolver

- 뷰의 이름과 동일한 이름을 가지는 빈을 View로 사용

- 사용자 정의 View 객체를 사용하는 경우 주로 사용

⑸ XmlViewResolver

- BeanNameViewResolver와 동일 하나 뷰 객체를 xml 파일에 설정해 놓는 것이

차이.

- Bean 등록 시 location 프라퍼티에 xml 파일을 지정


출처 : http://blog.naver.com/bignose7171/30141249980