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)