SpringMVC接收復(fù)雜集合對(duì)象(參數(shù))代碼示例
SpringMVC在接收集合請(qǐng)求參數(shù)時(shí),需要在Controller方法的集合參數(shù)里前添加@RequestBody,而@RequestBody默認(rèn)接收的enctype(MIME編碼)是application/json,因此發(fā)送POST請(qǐng)求時(shí)需要設(shè)置請(qǐng)求報(bào)文頭信息,否則SpringMVC在解析集合請(qǐng)求參數(shù)時(shí)不會(huì)自動(dòng)的轉(zhuǎn)換成JSON數(shù)據(jù)再解析成相應(yīng)的集合。以下列舉接收List<String>、List<User>、List<Map<String,Object>>、User[]、User(bean里面包含List)幾種較為復(fù)雜的集合參數(shù)示例:
接收List<String>集合參數(shù):
1、頁(yè)面js代碼:
Js代碼
var idList = new Array();
idList.push(“1”);
idList.push(“2”);
idList.push(“3”);
var isBatch = false;
$.ajax({
type: "POST",
url: "<%=path%>/catalog.do?fn=deleteCatalogSchemes",
dataType: 'json',
data: {"idList":idList,"isBatch":isBatch},
success: function(data){
…
},
error: function(res){
…
}
});
2、Controller方法:
Java代碼
@Controller
@RequestMapping("/catalog.do")
public class CatalogController {
@RequestMapping(params = "fn=deleteCatalogSchemes")
@ResponseBody
public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) {
…
}
}
接收List<User>、User[]集合參數(shù):
1、User實(shí)體類:
Java代碼
public class User {
private String name;
private String pwd;
//省略getter/setter
}
2、頁(yè)面js代碼:
Js代碼
var userList = new Array();
userList.push({name: "李四",pwd: "123"});
userList.push({name: "張三",pwd: "332"});
$.ajax({
type: "POST",
url: "<%=path%>/catalog.do?fn=saveUsers",
data: JSON.stringify(userList),//將對(duì)象序列化成JSON字符串
dataType:"json",
contentType : 'application/json;charset=utf-8', //設(shè)置請(qǐng)求頭信息
success: function(data){
…
},
error: function(res){
…
}
});
3、Controller方法:
Java代碼
@Controller
@RequestMapping("/catalog.do")
public class CatalogController {
@RequestMapping(params = "fn=saveUsers")
@ResponseBody
public AjaxJson saveUsers(@RequestBody List<User> userList) {
…
}
}
如果想要接收User[]數(shù)組,只需要把saveUsers的參數(shù)類型改為@RequestBodyUser[]userArray就行了。
接收List<Map<String,Object>>集合參數(shù):
1、頁(yè)面js代碼(不需要User對(duì)象了):
Js代碼
var userList = new Array();
userList.push({name: "李四",pwd: "123"});
userList.push({name: "張三",pwd: "332"});
$.ajax({
type: "POST",
url: "<%=path%>/catalog.do?fn=saveUsers",
data: JSON.stringify(userList),//將對(duì)象序列化成JSON字符串
dataType:"json",
contentType : 'application/json;charset=utf-8', //設(shè)置請(qǐng)求頭信息
success: function(data){
…
},
error: function(res){
…
}
});
2、Controller方法:
Java代碼
@Controller
@RequestMapping("/catalog.do")
public class CatalogController {
@RequestMapping(params = "fn=saveUsers")
@ResponseBody
public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) {
…
}
}
接收User(bean里面包含List)集合參數(shù):
1、User實(shí)體類:
Java代碼
public class User {
private String name;
private String pwd;
private List<User> customers;//屬于用戶的客戶群
//省略getter/setter
}
2、頁(yè)面js代碼:
Js代碼
var customerArray = new Array();
customerArray.push({name: "李四",pwd: "123"});
customerArray.push({name: "張三",pwd: "332"});
var user = {};
user.name = "李剛";
user.pwd = "888";
user. customers = customerArray;
$.ajax({
type: "POST",
url: "<%=path%>/catalog.do?fn=saveUsers",
data: JSON.stringify(user),//將對(duì)象序列化成JSON字符串
dataType:"json",
contentType : 'application/json;charset=utf-8', //設(shè)置請(qǐng)求頭信息
success: function(data){
…
},
error: function(res){
…
}
});
3、Controller方法:
Java代碼
@Controller
@RequestMapping("/catalog.do")
public class CatalogController {
@RequestMapping(params = "fn=saveUsers")
@ResponseBody
public AjaxJson saveUsers(@RequestBody User user) {
List<User> customers = user.getCustomers();
…
}
}
總結(jié)
以上就是本文關(guān)于SpringMVC接收復(fù)雜集合對(duì)象(參數(shù))代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
SpringMVC攔截器實(shí)現(xiàn)監(jiān)聽session是否過(guò)期詳解
SpringMVC開發(fā)restful API之用戶查詢代碼詳解
SpringMVC使用MultipartFile 實(shí)現(xiàn)異步上傳方法介紹
如有不足之處,歡迎留言指出。
相關(guān)文章
SpringMVC解析JSON請(qǐng)求數(shù)據(jù)問(wèn)題解析
這篇文章主要介紹了SpringMVC解析JSON請(qǐng)求數(shù)據(jù)問(wèn)題解析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
Spring Boot 快速搭建微服務(wù)框架詳細(xì)教程
SpringBoot是為了簡(jiǎn)化Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等而出現(xiàn)的,使用它可以做到專注于Spring應(yīng)用的開發(fā),而無(wú)需過(guò)多關(guān)注XML的配置。本文重點(diǎn)給大家介紹Spring Boot 快速搭建微服務(wù)框架詳細(xì)教程,需要的的朋友參考下吧2017-09-09
SpringBoot中使用Guava實(shí)現(xiàn)單機(jī)令牌桶限流的示例
本文主要介紹了SpringBoot中使用Guava實(shí)現(xiàn)單機(jī)令牌桶限流的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Java啟動(dòng)Tomcat的實(shí)現(xiàn)步驟
本文主要介紹了Java啟動(dòng)Tomcat的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Java文件過(guò)濾器實(shí)現(xiàn)按條件篩選文件
本文主要介紹了Java文件過(guò)濾器實(shí)現(xiàn)按條件篩選文件,文件過(guò)濾器是在文件處理中起到重要作用的工具,它可以用來(lái)篩選文件并根據(jù)特定的條件進(jìn)行過(guò)濾,下面就來(lái)介紹一下2024-04-04

