传一个或多个值:
前端:`
/**
* @type {{num: number}}
*/
var object1 = {
"num":1,
“name”:“张”
}
$.ajax({
type:"post",
url:"/user/test",
data:object1,
sync:true,
success:function(re){
//用的JSONObject,传过来的是对象,以{}来表示
if(re!="{}") {
alert(re)
}
}
})
后端接收
@RequestMapping("/user")
public class UserController {
@Autowired
private UserServiceImpl usi;
@RequestMapping("/test")
//形参如果名字与前台封装的键对应,则不需要写value值,否则必须写value,即以下两种方式都可获取值
/* public String test(@RequestParam (value = "num")String num1,@RequestParam String(value = "name") name1){*/
public String test(@RequestParam String num,@RequestParam String name){
System.out.println(num);
System.out.println(name);
return "ok";
}
传数组
前台:
var arr = new Array()
arr.push(1)
arr.push(2)
arr.push(3)
$.ajax({
type:"post",
url:"/user/test1",
//封装成json类型
data:{"arr":arr},
//这个必须为true,默认是false,会深度序列化,servlet解析不了
traditional:true,
sync:true,
success:function(re){
//用的JSONObject,传过来的是对象,以{}来表示
if(re!="{}") {
alert(re)
}
}
})
})
后台
//参数接收类似于传单个值,只是接收类型变成了String[]
public String test1(@RequestParam(value = "arr") String []arr){
List<Integer> list = new ArrayList<>();
for(int i=0;i<arr.length;i++){
list.add(Integer.valueOf(arr[i]));
}
for (Integer integer : list) {
System.out.println(integer);
}
return "ok";
}