
/*
* 엑셀 조회 메서드
*
*/
@RequestMapping(value = "/system/InsertExcel.do")
public String ExcelInsert(@ModelAttribute("selectExcelDTO") SelectExcelDTO excelVO, HttpServletRequest request, HttpServletResponse response, Model model) {
return "jsp/system/selectExcel";
}
/*
* 엑셀 조회 메서드
*
*/
@RequestMapping(value = "/system/InsertExcel.do")
public String ExcelInsert(@ModelAttribute("selectExcelDTO") SelectExcelDTO excelVO, HttpServletRequest request, HttpServletResponse response, ModelMap model) {
return "jsp/system/selectExcel";
}
위의 차이점을 알아보기 이전에 Model과 ModelMap의 공통점과 ModelAndView와의 차이점에 대해서 먼저 알아보자.
공통점으로는 데이터를 추가할 때 addAttribute 메서드를 사용해서 속성을 추가한다는 것이다.
model.addAttribute("result", null);
modelMap.addAttribute("result", null);
이 때 첫 인자는 attribute의 이름이고, 두 번째 인자는 attribute, 즉 데이터이다.
또 다른 공통점으로는 데이터만 저장하고, View에서 해당 데이터를 사용할 목적으로 사용한다는 점이 있다.
그러면 ModelAndView 와의 차이점은 무엇이 있을까?
바로 ModelAndView은 데이터와 이동하고자 하는 View Page를 함께 저장한다는 것이다.
/*
* 엑셀 조회 메서드
*
*/
@RequestMapping(value = "/system/InsertExcel.do")
public ModelAndView ExcelInsert() {
ModelAndView mav = new ModelAndView();
mav.addObject("result", null);
mav.setViewname("jsp/system/selectExcel");
returnmav;
}
이러한 ModelAndView는 @Controller 어노테이션을 사용하기 이전에 활발히 사용되었고, MVC가 @Controller를 지원한 이유로는 사장되고 있다고 한다.
그러면 Model과 ModelMap의 차이점은 무엇이 있을까?
가장 큰 차이점으로는 Model은 인터페이스이고, ModelMap은 클래스라는 것이다.
public interface Model { ... }
public class ModelMap extends LinkedHashMap<String, Object> { ... }
Map map = new TreeMap<>();
Map map = new HashMap<>();