1. 程式人生 > >SpringMVC接收復雜集合引數

SpringMVC接收復雜集合引數

在接收集合請求引數時,需要在Controller方法的集合引數裡前新增@RequestBody,而@RequestBody預設接收的enctype (MIME編碼)application/json,因此傳送POST請求時需要設定請求報文頭資訊,否則Spring MVC在解析集合請求引數時不會自動的轉換成JSON資料再解析成相應的集合。以下列舉接收List<String>、List<User>、List<Map<String,Object>>、User[]、User(bean裡面包含List)幾種較為複雜的集合引數示例:

  • 接收List<String>集合引數:

1、頁面js程式碼:

Js程式碼  收藏程式碼
  1. var idList = new Array();  
  2. idList.push(“1”);   
  3. idList.push(“2”);   
  4. idList.push(“3”);  
  5. var isBatch = false;  
  6. $.ajax({  
  7.     type: "POST",  
  8.     url: "<%=path%>/catalog.do?fn=deleteCatalogSchemes",  
  9.     dataType: 'json',  
  10.     data: {"idList":idList,"isBatch":isBatch},  
  11.     success: function
    (data){  
  12.         …  
  13.     },  
  14.     error: function(res){  
  15.         …  
  16.     }  
  17. });  

 2、Controller方法:

Java程式碼  收藏程式碼
  1. @Controller  
  2. @RequestMapping("/catalog.do")  
  3. public class CatalogController {  
  4.     @RequestMapping(params = "fn=deleteCatalogSchemes")  
  5.     @ResponseBody  
  6.     public AjaxJson deleteCatalogSchemes(@RequestParam
    ("idList[]") List<String> idList,Boolean isBatch) {  
  7.             …  
  8.     }  
  9. }  
  •  接收List<User>、User[]集合引數:

 1、User實體類:

Java程式碼  收藏程式碼
  1. public class User {  
  2.         private String name;   
  3.     private String pwd;  
  4.     //省略getter/setter  
  5. }  

2、頁面js程式碼:

Js程式碼  收藏程式碼
  1. var userList = new Array();  
  2. userList.push({name: "李四",pwd: "123"});   
  3. userList.push({name: "張三",pwd: "332"});   
  4. $.ajax({  
  5.     type: "POST",  
  6.     url: "<%=path%>/catalog.do?fn=saveUsers",  
  7.     data: JSON.stringify(userList),//將物件序列化成JSON字串  
  8.     dataType:"json",  
  9.     contentType : 'application/json;charset=utf-8'//設定請求頭資訊  
  10.     success: function(data){  
  11.         …  
  12.     },  
  13.     error: function(res){  
  14.         …  
  15.     }  
  16. });  

3、Controller方法:

Java程式碼  收藏程式碼
  1. @Controller  
  2. @RequestMapping("/catalog.do")  
  3. public class CatalogController {  
  4.     @RequestMapping(params = "fn=saveUsers")  
  5.     @ResponseBody  
  6.     public AjaxJson saveUsers(@RequestBody List<User> userList) {  
  7.         …  
  8.     }  
  9. }  

    如果想要接收User[]陣列,只需要把saveUsers的引數型別改為@RequestBody User[] userArray就行了。

  • 接收List<Map<String,Object>>集合引數:

 1、頁面js程式碼(不需要User物件了):

Js程式碼  收藏程式碼
  1. var userList = new Array();  
  2. userList.push({name: "李四",pwd: "123"});   
  3. userList.push({name: "張三",pwd: "332"});   
  4. $.ajax({  
  5.     type: "POST",  
  6.     url: "<%=path%>/catalog.do?fn=saveUsers",  
  7.     data: JSON.stringify(userList),//將物件序列化成JSON字串  
  8.     dataType:"json",  
  9.     contentType : 'application/json;charset=utf-8'//設定請求頭資訊  
  10.     success: function(data){  
  11.         …  
  12.     },  
  13.     error: function(res){  
  14.         …  
  15.     }  
  16. });  

2、Controller方法:

Java程式碼  收藏程式碼
  1. @Controller  
  2. @RequestMapping("/catalog.do")  
  3. public class CatalogController {  
  4.     @RequestMapping(params = "fn=saveUsers")  
  5.     @ResponseBody  
  6.     public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) {  
  7.         …  
  8.     }  
  9. }  
  •  接收User(bean裡面包含List)集合引數:

 1、User實體類:

Java程式碼  收藏程式碼
  1. public class User {  
  2.     private String name;   
  3.     private String pwd;  
  4.     private List<User> customers;//屬於使用者的客戶群  
  5.     //省略getter/setter  
  6. }  

2、頁面js程式碼:

Js程式碼  收藏程式碼
  1. var customerArray = new Array();  
  2. customerArray.push({name: "李四",pwd: "123"});   
  3. customerArray.push({name: "張三",pwd: "332"});   
  4. var user = {};  
  5. user.name = "李剛";  
  6. user.pwd = "888";  
  7. user. customers = customerArray;  
  8. $.ajax({  
  9.     type: "POST",  
  10.     url: "<%=path%>/catalog.do?fn=saveUsers",  
  11.     data: JSON.stringify(user),//將物件序列化成JSON字串  
  12.     dataType:"json",  
  13.     contentType : 'application/json;charset=utf-8'//設定請求頭資訊  
  14.     success: function(data){  
  15.         …  
  16.     },  
  17.     error: function(res){  
  18.         …  
  19.     }  
  20. });  

  3、Controller方法:

Java程式碼  收藏程式碼
  1. @Controller  
  2. @RequestMapping("/catalog.do")  
  3. public class CatalogController {  
  4.     @RequestMapping(params = "fn=saveUsers")  
  5.     @ResponseBody  
  6.     public AjaxJson saveUsers(@RequestBody User user) {  
  7.         List<User> customers = user.getCustomers();  
  8.         …  
  9.     }  
  10. }  

相關推薦

SpringMVC收復集合引數

在接收集合請求引數時,需要在Controller方法的集合引數裡前新增@RequestBody,而@RequestBody預設接收的enctype (MIME編碼)是application/json,因此傳送POST請求時需要設定請求報文頭資訊,否則Spring MV

SpringMVC收復集合引數【轉載】

宣告:本部落格轉載於博主“jxd_zxf”的部落格,原文章連結:http://jxd-zxf.iteye.com/blog/2072300/Spring MVC在接收集合請求引數時,需要在Controller方法的集合引數裡前新增@RequestBody,而@RequestB

springMvc 收復引數型別

Spring MVC在接收集合請求引數時,需要在Controller方法的集合引數裡前新增@RequestBody,而@RequestBody預設接收的enctype (MIME編碼)是application/json,因此傳送POST請求時需要設定請求報文頭資訊,否則Spr

SpringMVC收復對象

技術分享 解析 img att 題目 spring bsp mat 高中 SpringMVC接收復雜對象 轉載請註明地址:http://www.cnblogs.com/funnyzpc/p/7642977.html   本節內容暫放一邊,我先扯點兒,心情好了,代碼順風順水哈

springmvc收復型別的json資料需要注意的地方

1.如果接收的是普通的資料型別或者單物件 後端的方法上面什麼也不需要處理,只需要將物件放入到引數上面就可以了 2.如果接收的是複雜型別 例如物件裡面還包含物件或者是集合等,後端的方法引數上面只需要加

Spring mvc收復資料型別

**前言:**Spring MVC在接收集合請求引數時,需要在Controller方法的集合引數裡前新增@RequestBody,而@RequestBody預設接收的enctype (MIME編碼)是application/json,因此傳送POST請求時需要設定請求報文頭資訊,否則Spri

springmvc接收集合引數集合物件

Spring MVC在接收集合請求引數時,需要在Controller方法的集合引數裡前新增@RequestBody或者@RequestParam,而@RequestBody預設接收的enctype (MIME編碼)是application/json,因此傳送POST請求時需要

SpringMVC利用json收復雜物件和陣列

1,SpringMVC接收復雜引數必須要在引數前加 @RequestBody 2,ajax設定引數 contentType: 'application/json;charset=utf-8'(設定傳送資料型別為json) data: JSON.stringify(物件

springmvc口接收json類型參數設置

edi alt per 不能 convert ping ota pan art Springmvc需要如下配置: 1.開啟註解 <!-- 開啟註解--> <mvc:annotation-driven /> 2.加入相關bean <

第十五章 口和集合

特性 抽象 nts 子類 列表 方式 靜態常量 eem ins 1. 接口的關鍵字:interface 2. 接口的特性:  1)接口屬性都是靜態常量   2)方法都是抽象方法   3)實現類必須實現接口的所有方法   4)實現類可以實現多個接口   5

springmvc學習筆記(13)-springmvc註解開發之集合類型參數綁定

return 可擴展性 list .net items trac class javascrip lin springmvc學習筆記(13)-springmvc註解開發之集合類型參數綁定

springmvc口ios網絡請求

es2017 ica pri log nbsp mvc http alt .cn springmvc: application/json;charset=utf-8的ios網絡請求: 後臺使用 @RequestBody註解參數接收: springmvc接口ios網絡

c#中常用集合類和集合口之集合類系列【轉】

arr 關聯 special rect 替代 不能 一個數 lock resize 常用集合接口系列:http://www.cnblogs.com/fengxiaojiu/p/7997704.html 常用集合類系列:http://www.cnblogs.com/fengx

SpringMVC中@RequestMapping處理請求引數的@RequestParam註解

首先在頁面新增一個帶有引數的請求,分別是username和age <a href="springmvc/testRequestParam?username=yoni&age=20">Test RequestParam</a> 然後在類中新增方法

springmvc 傳遞和接收陣列引數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Springmvc——Controller接受各類請求引數

url傳送過來的請求攜帶的引數多種多樣,SpringMVC提供了諸多註解來解析引數。期目的就是 把控制器從複雜的Servlet API中剝離開來,解耦合,這樣就可以在非web容器環境中重用控制器,也方便測試。 請求引數大致可分為5種: 普通請求引數 需要@RequestP

SpringMVC自定義註解進行引數校驗

在我的另一篇部落格中(SpringMVC),學習瞭如何使用Spring MVC結合Hibernate的校驗框架validation(它和hibernate沒有任何關係)對引數進行校驗。在實際專案中,引數的校驗邏輯可能比較複雜,這時我們可以自定義註解來實現引數校驗,下面是一個簡單的例子。 po

SpringMVC自定義註解進行引數校驗(以校驗列舉值是否合法為例)

pom引入springMVC依賴,以springboot專案為例 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-

springMVC——將url中的引數轉成實體

控制層 package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapp

SpringMvc方法獲取和返回引數原始碼探究

簡介 SpringMvc的方法裡我們可以接受各式各樣型別的引數,Stirng、Integer、@RequestBody(Json)、ModelAndView(Spring自動注入的一些引數)等,那麼SpringMvc是如何將這些引數注入的呢? 例子 分別用postm