Spring boot @ModelAttribute標(biāo)注的實現(xiàn)
@ModelAttribute可以注釋方法和參數(shù)
@ModelAttribute注釋方法
@ModelAttribute注釋方法該方法會在controller的所有方法之前被執(zhí)行。通過Model將value設(shè)定到相應(yīng)的key中。
(1)注釋返回值為void的方法,通過傳入Model添加屬性值
@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)將返回值添加
實際結(jié)果類似與model.addAttribute("returnvaluename", var);
@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)指定屬性的名稱
//類似于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注釋方法的參數(shù)
@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;
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于使用MyBatis簡化JDBC開發(fā)和解決SQL語句警告的問題
這篇文章主要介紹了關(guān)于使用MyBatis簡化JDBC開發(fā)和解決SQL語句警告的問題,如果idea和數(shù)據(jù)庫沒有建立鏈接,idea不識別表的信息,就會出現(xiàn)SQL語句的警告,需要的朋友可以參考下2023-05-05
Java泛型機制與反射原理相關(guān)知識總結(jié)
今天帶大家學(xué)習(xí)的是關(guān)于Java進(jìn)階的相關(guān)知識,文章圍繞著Java泛型機制與反射原理展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06

