SpringMVC接收復(fù)雜集合對象(參數(shù))代碼示例
SpringMVC在接收集合請求參數(shù)時,需要在Controller方法的集合參數(shù)里前添加@RequestBody,而@RequestBody默認(rèn)接收的enctype(MIME編碼)是application/json,因此發(fā)送POST請求時需要設(shè)置請求報文頭信息,否則SpringMVC在解析集合請求參數(shù)時不會自動的轉(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、頁面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實體類:
Java代碼
public class User {
private String name;
private String pwd;
//省略getter/setter
}
2、頁面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),//將對象序列化成JSON字符串
dataType:"json",
contentType : 'application/json;charset=utf-8', //設(shè)置請求頭信息
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、頁面js代碼(不需要User對象了):
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),//將對象序列化成JSON字符串
dataType:"json",
contentType : 'application/json;charset=utf-8', //設(shè)置請求頭信息
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實體類:
Java代碼
public class User {
private String name;
private String pwd;
private List<User> customers;//屬于用戶的客戶群
//省略getter/setter
}
2、頁面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),//將對象序列化成JSON字符串
dataType:"json",
contentType : 'application/json;charset=utf-8', //設(shè)置請求頭信息
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ù)雜集合對象(參數(shù))代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
SpringMVC攔截器實現(xiàn)監(jiān)聽session是否過期詳解
SpringMVC開發(fā)restful API之用戶查詢代碼詳解
SpringMVC使用MultipartFile 實現(xiàn)異步上傳方法介紹
如有不足之處,歡迎留言指出。
相關(guān)文章
SpringMVC解析JSON請求數(shù)據(jù)問題解析
這篇文章主要介紹了SpringMVC解析JSON請求數(shù)據(jù)問題解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
Spring Boot 快速搭建微服務(wù)框架詳細(xì)教程
SpringBoot是為了簡化Spring應(yīng)用的創(chuàng)建、運行、調(diào)試、部署等而出現(xiàn)的,使用它可以做到專注于Spring應(yīng)用的開發(fā),而無需過多關(guān)注XML的配置。本文重點給大家介紹Spring Boot 快速搭建微服務(wù)框架詳細(xì)教程,需要的的朋友參考下吧2017-09-09
SpringBoot中使用Guava實現(xiàn)單機令牌桶限流的示例
本文主要介紹了SpringBoot中使用Guava實現(xiàn)單機令牌桶限流的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06

