1. 程式人生 > >Spring MVC之ModelAttribute

Spring MVC之ModelAttribute

@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使用