상세 컨텐츠

본문 제목

[SPRING] Model, ModelMap, ModelAndView 차이점

JAVA/SPRING

by ranlan 2021. 11. 14. 00:15

본문

728x90

Model

@GetMapping("/")
public String home(Model model) {
    model.addAttribute("name", data);
    return "index";
}

Model인터페이스이다. Controller에서 {key: value} 형태로 Model에 값을 저장하고 View에 이 데이터를 화면에 출력한다.

 

ModelMap

@GetMapping("/")
public String home(ModelMap modelMap) {
    modelMap.addAttribute("name", data);
    return "index";
}

ModelMap클래스로 Model과 내부적으로 사용하는 객체 타입과 메서드 모두 동일하다.

 

* ModelModelMap은 크게 차이점은 없고 둘 다 View에서 사용하려는 데이터를 저장하여 전송 하려는데 의미를 둔다.

 

 

ModelAndView

@GetMapping("/")
public String home() {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("name", data)
    modelAndView.setViewName("index");
    return "index";
}

ModelAndView클래스이며 말 그대로 Model과 View를 동시에 설정 가능하다.

* 스프링에서 @Controller 어노테이션을 지원한 이후부터 잘 사용하지 않는다고 한다. (나도 주로 View를 위한 Controller와 RestAPI를 위한 RestController 구별하여 사용)

 

 

728x90

관련글 더보기

댓글 영역