第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

我使用@ModelAttribute注解沒有達(dá)到效果,如下是代碼,老師幫我看一下

JSP頁面代碼:
<form?action="springmvc/ModelAttribute"?method="POST">
????<input?type="hidden"?name="id"?value="1"/>
????age:<input?type="text"?name="age"?value="22"/><br><br>
????username:<input?type="text"?name="username"?value="Tom"/><br><br>
????email:<input?type="text"?name="email"?value="tom@163.com"/><br><br>
????<input?type="submit"?value="Test?ModelAttribute">
</form>
?
控制器層代碼:
@Controller
@RequestMapping("/springmvc")
//@SessionAttributes(value={"user"},types=String.class)
public?class?SpringMVCTest02?{
????private?static?final?String?SUCCESS?="success";
?????
????/**
?????*?18.測試@ModelAttribute注解
?????*?@param?user
?????*?@return
?????*/
????@RequestMapping(value="/ModelAttribute",method=RequestMethod.POST)
????public?String?test18(UserBean?user)?{
????????System.out.println("模擬需要進(jìn)行修改的user對象:"+user);
????????return?SUCCESS;
????}
?????
????@ModelAttribute
????public?void?getUser(@RequestParam(value="id",required=false)?Long?id,
????????????????????????Map<String,?Object>?map)?{
????????if?(id?!=?null)?{
????????????UserBean?user?=?new?UserBean();
????????????user.setAge((short)21);
????????????user.setId(new?Long(1));
????????????user.setUsername("Jerry");
????????????user.setPassword("123456");
????????????user.setEmail("jerry@163.com");
????????????System.out.println("模擬從數(shù)據(jù)庫獲取的User對象:"+user);
????????????map.put("user",?user);
????????}
????}
}
?
這是控制臺輸出:
?
模擬從數(shù)據(jù)庫獲取的User對象:UserBean?[id=1,?age=21,?email=jerry@163.com,?username=Jerry,?password=123456,?address=null]
模擬需要進(jìn)行修改的user對象:UserBean?[id=1,?age=22,?email=tom@163.com,?username=Tom,?password=null,?address=null]
?
需求是把獲取到password賦值給為null的password


正在回答

2 回答

?/**

?????*?18.測試@ModelAttribute注解

?????*?@param?user

?????*?@return

?????*/

????@RequestMapping(value="/ModelAttribute",method=RequestMethod.POST)

????public?String?test18(UserBean?user,Map<String,Object> map)?{

????????String pwd=map.get("user1").getPassword();

????????user.setPassword(pwd);

????????System.out.println("模擬需要進(jìn)行修改的user對象:"+user);

????????return?SUCCESS;

????}

??????

????@ModelAttribute

????public?void?getUser(@RequestParam(value="id",required=false)?Long?id,

????????????????????????Map<String,?Object>?map)?{

????????if?(id?!=?null)?{

????????????UserBean?user?=?new?UserBean();

????????????user.setAge((short)21);

????????????user.setId(new?Long(1));

????????????user.setUsername("Jerry");

????????????user.setPassword("123456");

????????????user.setEmail("jerry@163.com");

????????????System.out.println("模擬從數(shù)據(jù)庫獲取的User對象:"+user);

????????????map.put("user1",?user);

????????}

????}

這樣不知道可以不可以....

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

坐著竹筏漂流 提問者

效果應(yīng)該都差不多,其實(shí)這個(gè)問題已經(jīng)解決了!
2018-01-18 回復(fù) 有任何疑惑可以回復(fù)我~
/**
??*?18.測試@ModelAttribute注解:
??*?1.運(yùn)行流程:
??*?①?ModelAttribute注解修飾的方法從數(shù)據(jù)庫中獲取到對象的相關(guān)數(shù)據(jù),把數(shù)據(jù)放入到Map中,鍵為:userBean.
??*?②?SpringMVC從Map中取出UserBean對象,并把表單參數(shù)賦給該UserBean對象對應(yīng)的屬性
??*?③?SpringMVC把上述對象傳給目標(biāo)方法的入?yún)???*?
??*?注意:@ModelAttribute修飾的方法中,放入到Map中的鍵和目標(biāo)方法入?yún)㈩愋偷牡谝粋€(gè)字母小寫的字符串
??*?
??*?2.源碼分析流程:
??*?(1)?先調(diào)用被@ModelAttribute注解修飾的方法——把該方法中Map中的數(shù)據(jù)implicitModel中
??*?(2)?解析請求處理器的目標(biāo)參數(shù),實(shí)際上該目標(biāo)參數(shù)來自于WebDataBinder對象的target屬性
??*?	???①?創(chuàng)建WebDataBinder對象:
??*?	???	?>?確定objectName屬性:如果傳入的attrName的屬性值為"",則objectName為類名的第一個(gè)字母小寫;
??*?		????????如果目標(biāo)方法的POJO類參數(shù)使用@ModelAttribute來修飾,則attrName值為@ModelAttribute注解
??*?		????????的value屬性的屬性值
??*?		?>?確定target屬性——在implicitModel中查找attrName對應(yīng)的屬性值:如果存在就放行;如果不存在則驗(yàn)證
??*?		????????當(dāng)前控制器是否被@SessionAttributes修飾,如果是,則嘗試從Session中獲取attrName對應(yīng)的屬性值,
??*?		????????如果Session中沒有對應(yīng)的屬性就會拋出異常;如果當(dāng)前控制器沒有被@SessionAttributes修飾,或
??*?		????????在@SessionAttributes中沒有使用value值指定的key和attrName匹配,則通過反射創(chuàng)建一個(gè)POJO
??*?	???②?SpringMVC把表單請求的參數(shù)賦給了WebDataBinder的target對應(yīng)的屬性
??*?	???③?SpringMVC會把a(bǔ)ttrName和target賦給implicitModel
??*?	???④?把WebDataBinder的target作為參數(shù)傳給目標(biāo)方法的入?yún)???*?
??*?3.SpringMVC確定目標(biāo)方法POJO入?yún)⒌倪^程
??*?(1)確定一個(gè)key:在implicitModel中查找key對應(yīng)的對象,
??*?@param?user
??*?@return
??*/
??@RequestMapping(value="/ModelAttribute",method=RequestMethod.POST)
??public?String?test18(@ModelAttribute("user")?UserBean?user)?{
??????System.out.println("模擬需要進(jìn)行修改的user對象:"+user);
??????return?SUCCESS;
??}

??@ModelAttribute
??public?void?getUser(@RequestParam(value="id",required=false)?Long?id,
??????????Map<String,?Object>?map)?{
??????if?(id?!=?null)?{
??????????UserBean?user?=?new?UserBean();
??????????user.setAge((short)21);
??????????user.setId(new?Long(1));
??????????user.setUsername("Jerry");
??????????user.setPassword("123456");
??????????user.setEmail("jerry@163.com");
??????????
??????????System.out.println("模擬從數(shù)據(jù)庫獲取的User對象:"+user);
??????????map.put("user",?user);
??????}
?}


1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

我使用@ModelAttribute注解沒有達(dá)到效果,如下是代碼,老師幫我看一下

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號