Model 이란?
- Controller → View로 데이터를 전달하기 위한 저장소이다.
Controller → View로 데이터를 전달하는 방법
1. ModelAndView
- ModelAndView로 전달
@RequestMapping("/modelTest1.do")
public ModelAndView modelTest1() {
String result = "ModelAndView로 전달한 결과 메세지";
ModelAndView mav = new ModelAndView();
mav.addObject("result", result); // 모델 데이터
mav.setViewName("model/modelOk"); // 뷰 정보
return mav;
}
2. 파라미터 주입 방식
- DTO를 이용해서 전달
@RequestMapping("/modelTest2.do")
public String modelTest2(ModelDTO dto) {
dto.setResult("이것은 DTO를 이용한 데이터 전달");
return "model/modelOk2";
}
- Map을 이용해서 전달
@RequestMapping("/modelTest3.do")
public String modelTest3(Map model) {
model.put("result", "Map객체를 이용한 데이터 전달");
return "model/modelOk";
}
- Model을 이용해서 전달
@RequestMapping("/modelTest4.do")
public String modelTest4(Model model) {
model.addAttribute("result", "Model을 이용한 데이터 전달");
return "model/modelOk";
}
- ModelMap을 이용해서 전달
@RequestMapping("/modelTest5.do")
public String modelTest5(ModelMap model) {
model.addAttribute("result", "ModelMap을 이용한 데이터 전달");
return "model/modelOk";
}
3. 반환 방식
- Map 반환
@RequestMapping("/model/modelOk.do")
public Map<String, Object> modelTest6() {
HashMap<String, Object> model = new HashMap<>();
model.put("result", "Map객체를 반환하여 데이터 전달");
return model;
}
- Model 반환
@RequestMapping("/model/modelOk3.do")
public Model modelTest7() {
Model model = new ExtendedModelMap();
model.addAttribute("result", "Model객체를 반환하여 데이터 전달");
return model;
}