Spring MVC輸出數據的幾種方式
@RequestMapping("/handle01")
public ModelAndView handle01(){
LocalDateTime now = LocalDateTime.now();
//封裝頁面與數據
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("date",now);
//封裝跳轉的頁面
modelAndView.setViewName("success");
System.err.println("==========ModelAndView======== "+modelAndView.getClass());
return modelAndView;
}
@RequestMapping("/handle11")
public String handle11(ModelMap modelMap){
LocalDateTime now = LocalDateTime.now();
modelMap.addAttribute("date",now);
System.err.println("==========modelMap======== "+modelMap.getClass());
return "success";
}
@RequestMapping("/handle12")
public String handle12(Model model){
LocalDateTime now = LocalDateTime.now();
model.addAttribute("date",now);
System.err.println("==========model======== "+model.getClass());
return "success";
}
@RequestMapping("/handle13")
public String handle12(Map<String,Object> map){
LocalDateTime now = LocalDateTime.now();
map.put("date",now);
System.err.println("==========map======== "+map.getClass());
return "success";
}
- ModelAndView
- ModelMap
- Model
- Map
都可以成功跳轉到指定頁面
==========ModelAndView======== class org.springframework.web.servlet.ModelAndView
==========modelMap======== class org.springframework.validation.support.BindingAwareModelMap
==========model======== class org.springframework.validation.support.BindingAwareModelMap
==========map======== class org.springframework.validation.support.BindingAwareModelMap
後面3個都是BindingAwareModelMap,數據都會被放在這個中
類結構圖
BindingAwareModelMap是最底層的最後都要轉換爲BindingAwareModelMap
ModelMap Model Map最後都到轉換爲BindingAwareModelMap