Spring boot @ModelAttribute標(biāo)注的實(shí)現(xiàn)
@ModelAttribute可以注釋方法和參數(shù)
@ModelAttribute注釋方法
@ModelAttribute注釋方法該方法會(huì)在controller的所有方法之前被執(zhí)行。通過(guò)Model將value設(shè)定到相應(yīng)的key中。
(1)注釋返回值為void的方法,通過(guò)傳入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)注釋返回值為具體類(lèi)型的。通過(guò)添加屬性(屬性名為返回值的頭字母小寫(xiě),例如返回值為Group,屬性為group)將返回值添加
實(shí)際結(jié)果類(lèi)似與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)指定屬性的名稱(chēng)
//類(lèi)似于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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于使用MyBatis簡(jiǎn)化JDBC開(kāi)發(fā)和解決SQL語(yǔ)句警告的問(wèn)題
這篇文章主要介紹了關(guān)于使用MyBatis簡(jiǎn)化JDBC開(kāi)發(fā)和解決SQL語(yǔ)句警告的問(wèn)題,如果idea和數(shù)據(jù)庫(kù)沒(méi)有建立鏈接,idea不識(shí)別表的信息,就會(huì)出現(xiàn)SQL語(yǔ)句的警告,需要的朋友可以參考下2023-05-05
Java泛型機(jī)制與反射原理相關(guān)知識(shí)總結(jié)
今天帶大家學(xué)習(xí)的是關(guān)于Java進(jìn)階的相關(guān)知識(shí),文章圍繞著Java泛型機(jī)制與反射原理展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Java模擬QQ實(shí)現(xiàn)聊天互動(dòng)程序
這篇文章主要介紹了如何利用Java語(yǔ)言模擬QQ實(shí)現(xiàn)一個(gè)簡(jiǎn)易的聊天互動(dòng)程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-06-06

