SpirngMVC通过Ajax传递多个对象
背景:在項(xiàng)目開發(fā)中會(huì)有很多次需要傳遞一個(gè)對(duì)象或者多個(gè)對(duì)象至后臺(tái)的情況。相信很多人也在傳遞List<E>的時(shí)候也會(huì)遇見很多問題。比如說415錯(cuò)誤,400錯(cuò)誤等等。
原因:總結(jié)一下其實(shí)就是前后端數(shù)據(jù)格式不統(tǒng)一等原因?qū)е?#xff0c;有時(shí)候可能只是json格式的鍵不對(duì)。我在此過程中碰見的情況也就是以下幾種
(1)傳遞List(User) 的情況
前端代碼:
1 var b = []; 2 var a ={}; 3 var c ={}; 4 a.name ="張三"; 5 a.age = "20", 6 b.push(a); 7 c.name ="李四"; 8 c.age = "20", 9 b.push(c); 10 $.ajax({ 11 url: '/cms/test/insertUser', 12 type: 'post', 13 dataType:"json", 14 contentType:"application/json", 15 data: JSON.stringify(b), 16 success: function(data){ 17 18 } 19 });?
?
后端代碼:
1 @RequestMapping("insertUser") 2 @ResponseBody 3 public Map<String,Object> insertUser(@RequestBody List<User> user ){ 4 return null; 5 }?
注意此時(shí)的json格式是??[{"name":"張三" , "age" : "20"},{"name":"李四" , "age" : "20"}]?
(2)單個(gè)對(duì)象:
對(duì)于單個(gè)對(duì)象是最最基本的用法,此處就不再解釋。
(3)多個(gè)對(duì)象 + String/int 等基本參數(shù)
前端代碼:
var a ={"arr" :["{name: 張三,age: 24}","{name: 李四,age: 24}"] , "classRome" : "初二四班"}$.ajax({url: '/cms/test/insertUser',type: 'post',dataType:"json",contentType:"application/json", data: a,success: function(data){ } });
?
后端代碼:
@RequestMapping("insertUser")@ResponseBodypublic Map<String,Object> insertUser(@RequestParam(required = false ,value = "arr[]") List<String> user , String classRome){return null;}后端接收到為JSON - String字符串 , 然后可以通過GSON 或者其他的JSON工具轉(zhuǎn)化為相關(guān)的實(shí)體類, 注意重點(diǎn)測試 arr 中對(duì)象為 一個(gè) 或者是 沒有 ?的情況 , 可能會(huì)有異常情況發(fā)生。
PS:文中代碼不可全部相信,只是提供一種解決問題的思路。
?
轉(zhuǎn)載于:https://www.cnblogs.com/wepfighting/p/7449141.html
總結(jié)
以上是生活随笔為你收集整理的SpirngMVC通过Ajax传递多个对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用maven profile实现多环境
- 下一篇: C++ smart pointer