91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中@ModelAttribute注解的作用

發布時間:2020-10-07 21:41:49 來源:腳本之家 閱讀:145 作者:小Cai先森 欄目:編程語言

問題描述:當我們使用表單傳值得時候,如果定義了,name,address,age。等屬性,那么通過表單傳過去的值就只有這3個屬性,但是我們需要的name,pass,address,age等四個屬性。那么在提交表單并賦值的時候就會出現,未得到的值為null的情況。如下圖:

java中@ModelAttribute注解的作用

獲取的pass為null

java中@ModelAttribute注解的作用

那么我們需要用@ModelAttribute注解來解決他:

實現代碼如下:

 @ModelAttribute
 public void getUsers(@RequestParam(value="name",required=false) String name,Map<String, Object> map){
  if(name!=null){
   System.out.println("調用ModelAttribute");
   //模擬從數據庫中獲取的對象。
   User users = new User("cjh","123","123@qq.com","China");
   System.out.println("從數據庫中獲取一個對象"+users);
   map.put("user",users);
  }
 }
 @RequestMapping("/getInfo")
 public String getServletAPI(User user){
  String viewName = "hello";
  System.out.println("修改:"+user);
  return viewName;
 }

@ModelAttribute注解的方法,在這個控制器中不管其他任何一個方法被調用,都會執行。

以上代碼的運行流程為:

1.首先執行@ModelAttribute注解修飾的方法,從數據庫中查找出對應要修改的對象,把值放在map鍵值對中,key應該和處理請求的方法傳入的參數名一樣,如:此處定義的傳入參數名為user,那么map.put(“user”,值(從數據庫中查詢的對象))。這個Map需要定義在方法入參的地方(代碼如上)。

2.Spring MVC會從Map中找出user對象,并把表單請求參數賦值給該user對象,只有表單定義了的屬性才會被替換,沒定義的為null,不改變。所以要求@ModelAttribute修飾的方法中定義的key的名稱要和控制器方法(@RequestMapping()修飾的方法)中入參的名稱要一致。否則沒效果。

3.Spring MVC 把上述對象傳入目標方法的參數。

注意:在@ModelAttribute 修飾的方法中,放入到map時的鍵要和目標方法入參類型的參數名一致。

最終效果:

java中@ModelAttribute注解的作用

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西平县| 东城区| 临泽县| 龙海市| 紫金县| 富裕县| 西吉县| 静宁县| 宁国市| 手游| 丹棱县| 顺昌县| 娱乐| 蚌埠市| 凤庆县| 普陀区| 桑植县| 威宁| 万荣县| 肥城市| 龙陵县| 马边| 定兴县| 山东省| 浪卡子县| 山阴县| 牙克石市| 黄山市| 西乌珠穆沁旗| 开平市| 清涧县| 西乡县| 肇庆市| 盱眙县| 石林| 辛集市| 伊吾县| 昂仁县| 利辛县| 康保县| 尤溪县|