1. 程式人生 > >SpringMVC 註解(七) @ModelAttribute註解,設定model檢視屬性

SpringMVC 註解(七) @ModelAttribute註解,設定model檢視屬性

SpringMVC @ModelAttribute

  • 注意的地方

    當類中定義了@ModelAttribute 註解的方法(定義在方法上),此時所以的@RequestMapping 定義的方法在執行前都會執行被@ModelAttribute定義的方法,如果此類對應多個檢視,要謹慎使用,防止值混亂

  • 作用:

    1.在有@RequestMapping 註解的類中,可以註解方法的引數設定Model屬性暴露給web檢視

    2.也可以註解方法的返回值設定Model屬性,暴露給web檢視

  • 例子

1.設定註解返回值的:將值注入model 屬性中

// 第一種情況
@ModelAttribute
public void testModel(Model model,@RequestParam String type) {
    model.addAttribute("type",type);
}

第一種情況的變形

//第一種情況的變形,
//此時key 值為所放入的引數型別的名稱全小寫形式
@ModelAttribute
public void testModel2(Model model,@RequestParam String type) {
    model.addAttribute(type);
}

//或

//同上屬變形一樣,key也是引數型別的小寫形式
@ModelAttribute
public String testModel3(Model model,@RequestParam String type) {
    return type;
}

//變形的key 實在很不方便,而且多個相同型別值如果設定進入
// Model會重複,可以在方法上的@ModelAttribute註解中新增
// value屬性指定key值

2.設定在方法引數宣告上,從model 中取對應 的key值

@RequestMapping("test2")
public String test2(@ModelAttribute("type") String type) {
    return "../index";
}

參考: https://blog.csdn.net/lovesomnus/article/details/78873089