ModelMap

알비레오·2025년 3월 16일

자바

목록 보기
9/17

ModelMap

  • Spring MVC에서 컨트롤러와 뷰 사이에 데이터를 전달하는 데 사용되는 객체
  • java.util.Map 인터페이스를 구현한 클래스로, 키-값 쌍으로 데이터를 저장하고 관리함

주요 특징

  1. 데이터 전달 : ModelMap은 컨트롤러에서 뷰로 데이터를 전달하는 컨테이너 역할을 함
  2. 사용 편의성 : Map과 유사한 API를 제공하여 데이터를 쉽게 추가하고 관리할 수 있음
  3. 유연성 : 다양한 타입의 데이터를 저장할 수 있어 유연한 데이터 관리가 가능함

사용 방법

  1. 컨트롤러 메서드 파라미터로 사용
@GetMapping("/printViewPage")
public String passParametersWithModelMap(ModelMap map) {
    map.addAttribute("welcomeMessage", "welcome");
    map.addAttribute("message", "Baeldung");
    return "view/viewPage";
}
  1. addAttribute 메서드 : 키-값 쌍으로 데이터를 추가함
  2. 데이터 접근 : 뷰에서는 EL(Expression Language)를 사용하여 ModelMap에 저장된 데이터에 접근할 수 있음

Model vs ModelMap

  • Model은 인터페이스이고, ModelMap은 구현체
  • 내부적으로는 동일한 객체 타입을 사용하므로, 개발자의 선호에 따라 선택할 수 있음

장점

  1. 간편한 데이터 전달 : HttpServletRequest를 직접 사용하는 것보다 더 간편하고 스프링 프레임워크에 특화된 방식
  2. 타입 안전성 : 제네릭을 활용하여 타입 안정성을 제공함
  3. 스프링 통합 : 스프링 MVC의 다른 컴포넌트들과 잘 통합됨

ModelMap은 Spring MVC에서 컨트롤러와 뷰 사이의 데이터 전달을 효과적으로 관리할 수 있게 해주는 유용한 도구
특히 복잡한 웹 애플리케이션에서 데이터 흐름을 관리하는 데 큰 도움이 됨

0개의 댓글