写了很多篇关于controller层接收各种类型参数的写法,此篇做一个完结。
本篇中,使用json字符串的传参方式解决各种类型的参数传递,然后在后端使用JSON转成对应的实体或者数组
一、js中参数处理。
// 处理实体的传递
let userForm = {
username:"张三",
age:18
}
let user = JSON.stringify(userForm);
// 处理数组的传递
let workArray = [];
workArray.push({
workname:"程序员",
year:3
});
workArray.push({
workname:"项目经理",
year:5
});
let workList = JSON.stringify(workArray);
$.ajax({
type:'post',
url:'',
dataType:'json',
data:{user:user,workList:workList },
content-type: 'application/x-www-form-urlencoded',
success:function (res) {
...
},
error:function () {
...
}
})
二、后端直接当作字符串接收,然后转化为对象
@RequestMapping("/...")
@ResponseBody
public Map<String, Object> getUser(String user, String workList){
User u= JSON.parseObject(user, User.class);
List<Work> works= JSON.parseArray(workList, Work.class);
...
}