本記事をご覧になれば、ModelAndViewとModelの違いを理解することができます。
結論
- 「mav.setViewName(XXX);」の有無
- returnの値
のみです。
サンプルコード
model.addAttributeとmav.addObjectはどちらもmessage変数に文字列を設定しているため、違いがありません。
「mav.setViewName(XXX);」の有無
ModelAndViewでは、テンプレート名を設定しています。
returnの値
modelでは、テンプレート名を返しています。
ModelAndViewでは、mavオブジェクトを返しています。
コピペ用
@RequestMapping(value = "/model")
public String index1(Model model) {
model.addAttribute("message", "Hello World model");
return "index";
}
@RequestMapping(value = "/mav")
public ModelAndView index2(ModelAndView mav) {
mav.addObject("message", "Hello World mav");
mav.setViewName("index");
return ;
}
コメント