본문 바로가기
프로그래밍/스프링(spring)

[Spring] Model,ModelMap vs ModelAndView 차이점

by imfireguy 2021. 7. 18.
반응형

@Jefferson Santos unsplash

Model, ModelMap vs ModelAndView 차이점

Model, ModelMap: 데이터만 저장합니다.

ModelAndView: 데이터와 이동하고자 하는 View Page를 같이 저장합니다.

 

Model, ModelMap

1. Model, ModelMap 공통점

둘 다 addAttribute를 사용합니다.( model.addAttribe("변수명", "값"); , modelMap.addAttribe("변수명", "값"); )

Model or ModelMap에 데이터만 저장 후 View에서 사용하는 게 목적입니다.

 

2. Model, ModelMap 차이점

Model - 인터페이스입니다.

ModelMap - 클래스입니다.

 

메서드 예시)

@RequestMapping(value = "/test.do")
public String test(HttpServletRequest request, Model model, ModelMap modelMap){
	        
	    String modelTest = "Model Test";
	    String modelMapTest = "ModelMap Test";
	    
	    model.addAttribute("modelTest", modelTest);
	    model.addAttribute("modelMapTest", modelMapTest);
	        
	    return "test";
}

 

JSP)

<body>
    Model 저장한 값 : <input type="text" value="${modelTest }"/><br/>
    ModelMap 저장한 값 : <input type="text" value="${modelMapTest }"/>
</body>

 

Web)

 

ModelAndView

addObject를 통해서 데이터를 저장합니다.

setViewName를 통해서 이동하고자 하는 View를 저장합니다.

선언 방법은 메서드 안에서 ModelAndView mv = new ModelAndView();로 선언합니다.

return type을 ModelAndView로 지정할 수  있습니다.

 

메서드 예시)

@RequestMapping(value = "/test.do")
public ModelAndView test(HttpServletRequest request, Model model, ModelMap modelMap){
	        
	  ModelAndView mv = new ModelAndView();
	  mv.addObject("ModelAndView", "ModelAndView Test");
	  mv.setViewName("test");
	  
	  return mv;
		
}

 

JSP)

<body>
    ModelAndView 저장한 값 : <input type="text" value="${modelAndView}"/><br/>
</body>

 

Web)

 

반응형

댓글