Spring boot @ModelAttribute標註

@ModelAttribute能夠註釋方法和參數app

@ModelAttribute註釋方法

@ModelAttribute註釋方法該方法會在controller的全部方法以前被執行。經過Model將value設定到相應的key中。ui

(1)註釋返回值爲void的方法,經過傳入Model添加屬性值code

@RestController
@RequestMapping("/usrcontroller")
public  class  UserController  {

    UserService us = new UserService();

    @ModelAttribute
    public  void  findUserById(@RequestParam Long uid, Model  model) {
        model.addAttribute("user",  us.getUser(uid));
    }

    @GetMapping(path="/getuser")
    @ResponseBody
    public  String  getUser(Model  model)  {
        User u = (User)(model.getAttribute("user"));
        System.out.println(u.name);
        return  u.name;
    }
}

(2)註釋返回值爲具體類型的。經過添加屬性(屬性名爲返回值的頭字母小寫,例如返回值爲Group,屬性爲group)將返回值添加
實際結果相似與model.addAttribute("returnvaluename", var);get

@RestController
@RequestMapping("/groupcontroller")
public  class  GroupController  {
    @ModelAttribute
    public Group getGroupId(@RequestParam Long  gid)  {
        Group g = new Group();
        g.groupName = "group_"+gid;
        g.groupId =  gid;

        return  g;
        //same as Model.addAttribute("group", g)
    }

    @GetMapping(path="/getgroup")
    @ResponseBody
    public  String  getGroup(Model  model)  {
        Group g = (Group)model.getAttribute("group");
        String gStr = "group(id:"  +  g.groupId  +  ","  +  g.groupName  +  ")";
        System.out.println(gStr);

        return  gStr;
    }
}

(3)指定屬性的名稱class

//相似於Model.addAttribute("defaultuser", User)
@ModelAttribute("defaultuser")
public  User  createDefaultUser()  {
    return  new  User("defaultUsr","SH",  22,  true);
}

@GetMapping(path="/checkdefaultuser")
@ResponseBody
public  String  checkDefaultUser(@ModelAttribute("defaultuser")  User  dfUsr)  {
    String  dfUsrStr =  "Default user("+dfUsr.name  +  ","  +  dfUsr.address  +  ","  +  dfUsr.age  +  ","  +  dfUsr.isMan  +  ")";

    System.out.println(dfUsrStr);

    return  dfUsrStr;
}

@ModeAttribute註釋方法的參數

@ModelAttribute("defaultuser")
public  User  createDefaultUser()  {
    return  new  User("defaultUsr","SH",  22,  true);
}

@GetMapping(path="/checkdefaultuser")
@ResponseBody
public  String  checkDefaultUser(@ModelAttribute("defaultuser")  User  dfUsr)  {
    String  dfUsrStr  =  "Default user("+dfUsr.name  +  ","  +  dfUsr.address  +  ","  +  dfUsr.age  +  ","  +  dfUsr.isMan  +  ")";
    System.out.println(dfUsrStr);
    return  dfUsrStr;
}
相關文章
相關標籤/搜索