2016년 9월 29일 목요일

48day / WEB / ModelAndView

http://www.javajigi.net
Model2 Architecture에서 ModelAndView란?

spring을 배워본적은 없지만 강사님의 엄청난 교육! 아래에서
Servlet & JSP에 HandlerMapping과 DispacherServlet도 구현해보면서
학습해보고 있었다.
오늘은 기존 학습 로직에서 Controller 영역에 ModelAndView를 추가하였다.

그동안 구현해본 MVC2 Architecture 구조 정리
DispatcherServlet
Front Controller의 역할
모든 클라이언트의 진입점
웹어플리케이션의 공통적인 정책 적용 (한글처리 , 에러처리 , 보안 등)

HandlerMapping
Factory Pattern -> Controller구현체의 생성을 전담
DispatcherServlet과 Controller 구현체와의 결합도를 낮춘다
Controller
실제 Controller Logic을 처리하는 구현체들의 상위 Interface
-> 표준화를 통한 다형성 적용
참고) 다형성 Polymorphism
하나의 메세지 방식으로 다양한 객체들이 각자의 방식으로 동작하는 성질
DispatcherServlet은 각각의 Controller를 분석하지 않아도
표준화된 상위 Controller interface method를 호출하면
다양한 개별 Controller구현체들이 각자의 방식으로 로직을 수행한다

  • ModelAndView
응답할 View와 View에게 전달할 값을 저장하는 용도의 객체
Controller의 표준화된 추상메서드의 리턴타입
Model 은 클라이언트 요청에 따른 Model(ex:DAO , VO , DTO ) 과 연동결과정보를 저장
View 는 클라이언트 요청에 따른 응답 jsp url을 저장( 이동방식 : forward or #36c1c8irect )

  • 주요 생성자
ModelAndView()
Bean 사용에 대한 기본 생성자 : Bean을 채우는 대신 생성자의 인자를 전달.

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에 설정됨
addAllObjects(Map values)
view에 전달할 값을 Map에 name-value로 저장하여 한번에 설정
requestScope에 설정됨
#redirect 방식 전송
view이름에 redirect: 접두어 붙인다
ex) mv.setViewName(“#redirect:/welcome.html”);

0 개의 댓글:

댓글 쓰기