* ViewRsolver

1. Controller가 넘긴 view이름을 통해 알맞은 view를 찾는 역할
 ① Controller는 ModelAndView 객체에 응답할 view 이름을 넣어 return
 ② DispatcherServlet은 viewResolver에게 응답할 view를 요청한다.
 ③ ViewResolver는 view 이름을 이용해 알 맞는 view 객체를 찾아 DispatcherServlet에게 전달.

2. ViewResolver - Spring 설정 파일에 등록한다.

3. ViewResolver

 - InternalResourceViewResolver
   - JSP나 HTML등의 내부 자원을 이용해 뷰 생성
   - InternalResourceView를 기본 뷰로 사용

 - BeanNameViewResolver
   - 뷰의 이름과 동일한 이름을 가지는 빈을 View로 사용
   - 사용자 정의 View 객체를 사용하는 경우 주로 사용

 - XmlViewResolver
   - BeanNameViewResolver와 동일 하나 뷰객체를 Xml파일에 설정해 놓는 것이 차이.
   - Bean 등록시 location 프라퍼티에 xml 파일을 지정

Posted by 조은성
,

* ModelAndView

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

2. 생성자
 - ModelAndView(String viewName) : 응답할 view 설정
 - ModelAndView(String viewName, Map values) : 응답할 view와 view로 전달할 값들을 저장한 Map 객체
 - ModelAndView(String viewName, String name, Object value) : 응답할 view이름, view로 넘길 객체의 name-value

3. 주요 메소드
 - setViewName(String view) : 응답할 view이름을 설정
 - addObject(String name, Obejct value) : view에 전달할 값을 설정
   - requestScope에 설정됨
 - addAllObjects(Map values) : view에 전달할 값을 Map에 name-value로 저장하여 한번에 설정 - requestScope에 설정됨

4. Redirect 방식 전송
 - view이름에 redirect : 접두어 붙인다.
   ex) mv.setViewName("redirect:/welcome.html");

 

Posted by 조은성
,

* Controller 작성

1. Controller 종류
 - Controller (interface)
 - AbstractController
 - MultiActionController

2. 위의 interface/class를 상속하여 Controller 작성한다.

* AbstractController

1. 가장 기본이 되는 Controller
2. 작성
 - AbstractController 상속한다.
 - public ModelAndView handleRequestInternal(HttpServletReqiest request, HttpServletResponse response) throws Exception
오버라이딩 하여 코드 구현
 - ModelAndView에 view가 사용할 객체와 view에 대한 id값을 넣어 생성 후 return

 

* MultiActionController

1. 하나의 Controller에서 여러 개의 요청 처리 지원
 - 연관 된 request를 하나의 controller로 묶을 경우 사용,

2. 작성
 - MultiActionController 상속
 - client의 요청을 처리할 메소드 구현
 public[ModelAndView|Map|void] 메소드이름(
 HttpServletRequest req, HttpServletResponse res[HttpSession|Command])[throws Exception]{}

 - return type : ModelAndView, Map, void 중 하나
 - argument :
   1번 - HttpServletRequest
   2번 - HttpServletResponse
   3번 - 선택적이며  HttpSession 또는 Command or 3번 HttpSession
   4번 - Command

3. MethodNameResolver 등록
 - 역할 : 어떤 메소드가 클라이언트의 요청을 처리할 것인지 결정
 - Spring 설정파일에 <bean>으로 등록
 - controller에서는 property로 주입 받는다.
 - 종류
   - parameterMethodNameResolver : parameter로 메소드 이름 전송
   - InternalPathMethodNameResolver : url 마지막 경로 메소드 이름으로 사용
   - PropertiesMethodNameResolver : URL과 메소드 이름 mapping을 property로 설정

 

'프로그래밍 > Spring MVC' 카테고리의 다른 글

ViewRsolver  (0) 2012.06.27
ModelAndView  (0) 2012.06.27
HandlerMapping  (0) 2012.06.26
DispatcherServlet 설정과 ApplicationContext  (0) 2012.06.26
Spring MVC 흐름  (0) 2012.06.26
Posted by 조은성
,