Spring MVC Model, ModelAndView

박재민·2021년 4월 10일
0
post-custom-banner

1. Model과 ModelAndView의 차이점

  • Model은 데이터만 저장하고 ModelAndView는 데이터와 이동하고자 하는 View Page를 같이 저장

  • 컨트롤러 처리 후 응답할 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
@GetMapping("content.do")
public ModelAndView read(long seq) {

	Board board = boardService.read(seq);

	ModelAndView mv = new ModelAndView("board/content", "board", board);

	return mv;

}

"board/content" -> 응답할 view의 이름(jsp)
"board" -> name
board-> view로 넘길 객체의 name-value

3. 자주 사용하는 메소드

  • setViewName(String view): 응답할 view 이름을 설정
  • addObject(String name, Object value) : view에 전달할 값을 설정
  • addAllObject(Map values) : view에 전달할 값을 Map에 name-value로 저장하여 한번에 설정
@GetMapping("list.do")
	public ModelAndView list() {
		List<Address> list = addressService.listS();
       	ModelAndView mv = new ModelAndView();
		mv.setViewName("address/list"); //View의 경로
		mv.addObject("list", list); //Model(변수 이름, 데이터 값
		
		
		return mv; // return을 ModelAndView 객체를 반환
	}
  • ModelAndView 객체 생성 후 아래 메소드를 사용한다.
  • setViewName을 통해 view의 이름을 설정하여 addObject메소드를 통해 view에 전달할 값을 설정

위 코드를 ModelAndView 생성자로 만들면 아래와 같다

ModelAndView mv = new ModelAndView("address/list", "list", "list")
profile
동료를 소중히 생각하는 개발자입니다.
post-custom-banner

0개의 댓글