SpringMVC利用json接收復雜物件和陣列
阿新 • • 發佈:2019-01-26
1,SpringMVC接收復雜引數必須要在引數前加
@RequestBody
2,ajax設定引數
contentType: 'application/json;charset=utf-8'(設定傳送資料型別為json)
data: JSON.stringify(物件或者陣列)(序列化json資料)
@Controller public class SpringTest { @RequestMapping("myTest") public void springMVCTest(@RequestBody List<People> people){ System.out.println(people); } @RequestMapping("/") public String home(){ return "home.html"; } }
實體類(getter/setter略)
public class People {
private String name;
private Integer age;
private Company company;
}
public class Company {
private String name;
private Address address;
}
public class Address {
private String location;
private String phoneNum;
}
<!DOCTYPE html> <html lang="en"> <head> <title>這是測試頁面</title> <meta charset="utf-8"> </head> <body> <button onclick="doAjax()">測試按鈕</button> </body> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> function doAjax() { $.ajax({ url: "/myTest", type: "post", dataType: "json", contentType: 'application/json;charset=utf-8', async: true, data: JSON.stringify( [ {name: '小紅', age: 20, company: {name: '阿里', address:{location:'杭州',phoneNum:'88888'}}}, {name: '小王', age: 22, company: {name: '騰訊', address:{location:'深圳',phoneNum:'99999'}}} ] ), }); } </script> </html>
輸出
[People{name='小紅', age=20, company=Company{name='阿里', address=Address{location='杭州',phoneNum='88888'}}},
People{name='小王', age=22, company=Company{name='騰訊', address=Address{location='深圳', phoneNum='99999'}}}]
(本測試基於SpringMVC 5.0.8)