ModelMap
- Spring MVC에서 컨트롤러와 뷰 사이에 데이터를 전달하는 데 사용되는 객체
- java.util.Map 인터페이스를 구현한 클래스로, 키-값 쌍으로 데이터를 저장하고 관리함
주요 특징
- 데이터 전달 : ModelMap은 컨트롤러에서 뷰로 데이터를 전달하는 컨테이너 역할을 함
- 사용 편의성 : Map과 유사한 API를 제공하여 데이터를 쉽게 추가하고 관리할 수 있음
- 유연성 : 다양한 타입의 데이터를 저장할 수 있어 유연한 데이터 관리가 가능함
사용 방법
- 컨트롤러 메서드 파라미터로 사용
@GetMapping("/printViewPage")
public String passParametersWithModelMap(ModelMap map) {
map.addAttribute("welcomeMessage", "welcome");
map.addAttribute("message", "Baeldung");
return "view/viewPage";
}
- addAttribute 메서드 : 키-값 쌍으로 데이터를 추가함
- 데이터 접근 : 뷰에서는 EL(Expression Language)를 사용하여 ModelMap에 저장된 데이터에 접근할 수 있음
Model vs ModelMap
- Model은 인터페이스이고, ModelMap은 구현체
- 내부적으로는 동일한 객체 타입을 사용하므로, 개발자의 선호에 따라 선택할 수 있음
장점
- 간편한 데이터 전달 : HttpServletRequest를 직접 사용하는 것보다 더 간편하고 스프링 프레임워크에 특화된 방식
- 타입 안전성 : 제네릭을 활용하여 타입 안정성을 제공함
- 스프링 통합 : 스프링 MVC의 다른 컴포넌트들과 잘 통합됨
ModelMap은 Spring MVC에서 컨트롤러와 뷰 사이의 데이터 전달을 효과적으로 관리할 수 있게 해주는 유용한 도구
특히 복잡한 웹 애플리케이션에서 데이터 흐름을 관리하는 데 큰 도움이 됨