Spring MVC之ModelAttribute
阿新 • • 發佈:2018-12-17
@ModelAttribute用法
@ModelAttribute註解如果用在方法上,則用於設定引數,他會在執行處理前將引數設定到Model中。規則如下:
1)、ModelAttribute設定了value屬性,則將其value作為引數名,返回值作為引數值設定到Model中
@ModelAttribute("model1")//設定了value屬性為model1
public String setModel1(){
return "v_1";
}
2)、如果方法含有Model、Map、ModelMap型別的引數,則可以直接將引數設定上去
@ModelAttribute("model3") public void setModel3(Model model){ model.addAttribute("model3","v3"); }
3)、如果既沒有設定value,也沒有設定Model等引數,則根據返回值型別解析出引數名,返回值作為引數值設定到Model中
@ModelAttribute
public String setModel2(){
return "v2";
}
獲取:
@RequestMapping("/testModelAttribute") public String testModelAttribute(Model model){ Map datas = model.asMap(); datas.get("model1"); System.out.println(datas.get("model1"));//v1 System.out.println(datas.get("string"));//v2 System.out.println(datas.get("model3"));//v3 return "testModelAttribute"; }
如果要針對某些controller生效,可結合@ModelAttribute與@ControllerAdvice使用