[스프링] 모델 객체 전달 방법

스프링 프레임워크를 사용하여 웹 애플리케이션을 개발할 때, 컨트롤러로부터 뷰로 데이터를 전달하는 방법은 다양합니다. 여기에서는 스프링에서 사용되는 모델 객체 전달 방법에 대해 살펴보겠습니다.

1. ModelAndView를 이용한 전달

가장 전통적인 방법으로, 컨트롤러에서 ModelAndView 객체를 생성하고 모델 데이터를 추가한 후 뷰 이름을 지정하여 반환합니다.

@Controller
public class MyController {
    @RequestMapping("/my-endpoint")
    public ModelAndView handleRequest() {
        ModelAndView mav = new ModelAndView();
        mav.addObject("key", "value");
        mav.setViewName("my-view");
        return mav;
    }
}

2. @ModelAttribute를 이용한 전달

컨트롤러 메서드의 파라미터에 @ModelAttribute 어노테이션을 사용하여 모델 데이터를 전달할 수 있습니다.

@Controller
public class MyController {
    @RequestMapping("/my-endpoint")
    public String handleRequest(@ModelAttribute("key") String value, Model model) {
        model.addAttribute("anotherKey", "anotherValue");
        return "my-view";
    }
}

3. Map 또는 Model을 이용한 전달

컨트롤러 메서드의 파라미터로 Map 또는 Model 객체를 사용하여 데이터를 전달할 수 있습니다.

@Controller
public class MyController {
    @RequestMapping("/my-endpoint")
    public String handleRequest(Map<String, Object> model) {
        model.put("key", "value");
        return "my-view";
    }
}

스프링의 다양한 모델 객체 전달 방법을 활용하여, 애플리케이션의 요구에 맞게 효율적으로 데이터 전달을 수행할 수 있습니다.

참고: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/ModelAndView.html