springMvc 接收 ajax传递Map,list,对象的方式

本文深入解析了前后端数据交互的三种常见方式:Map、对象和List的传递与接收技巧,涵盖了前端Ajax写法及后端SpringMVC的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. Map 传递和接收

前端ajax写法:
错误写法
var submitMap=function () {
    var params={};
    params['aa']="aa";
    params['bb']="bb";
    $.ajax({
        url:"/acceptMap",
        data:{params:params},
        success:function (result) {
            console.log(result);//传入后台的值key和value 对应为 {params[aa]=aa, params[bb]=bb}
        }
    });
};
正确写法
var submitMap2=function () {
    var params1={};
    params1['aa']="aa";
    params1['bb']="bb";
    $.ajax({
        url:"/acceptMap",
        data:params1,
        success:function (result) {
            console.log(result);//传入后台的值key和value 对应为 {aa=aa, bb=bb}
        }
    });
};


var submitMap3=function () {
    $.ajax({
        url:"/acceptMap",
        data:{aa:"aa1",bb:"bb1"},
        success:function (result) {
            console.log(result);//传入后台的值key和value 对应为 {aa=aa1, bb=bb1}
        }
    });
};


var submitMap4=function () {
    $.ajax({
        url:"/acceptMap",
        data:{"aa":"aa2","bb":"bb2"},
        success:function (result) {
            console.log(result);//传入后台的值key和value 对应为 {aa=aa2, bb=bb2}
        }
    });
};
后端接收方式:
   @RequestMapping("/acceptMap")
    public String acceptMap(@RequestParam Map<String,String> params){}

二. 对象传递和接收

前端传递方式
错误写法
var submitObject3=function () {
    var params={};
    params['name']="aa2";
    params['age']="13";
    $.ajax({
        url:"/acceptObject",
        data:{person:params},
        success:function (result) {
            console.log(result);
        }
    });
}
正确写法
  var submitObject=function () {
    $.ajax({
        url:"/acceptObject",
        data:{name:"aa",age:12},
        success:function (result) {
            console.log(result);
        }
    });
}

var submitObject1=function () {
    $.ajax({
        url:"/acceptObject",
        data:{"name":"aa1","age":13},
        success:function (result) {
            console.log(result);
        }
    });
}

var submitObject2=function () {
    var params={};
    params['name']="aa2";
    params['age']="13";
    $.ajax({
        url:"/acceptObject",
        data:params,
        success:function (result) {
            console.log(result);
        }
    });
}
后端接收
  @RequestMapping("/acceptObject")
 public String acceptObject(Person person){}

三. list 传递和接收

方式一:
前端
 /**
 * 该方法只支持POST请求
 */
var submitList=function () {
    var list=[];
    list.push("aa");
    list.push("bb");
    $.ajax({
        url:"/acceptList",
        dataType:"JSON",
        contentType:"application/json",
        type:"POST",
        data:JSON.stringify(list),
        success:function (result) {
            console.log(result);
        }
    });
}
后端
/**
 * 参数是一个List的时候
 * @param strList
 * @return
 */
@RequestMapping("/acceptList")
@ResponseBody
public String acceptList(@RequestBody List<String> strList){
    System.out.println(strList.toString());
    return strList.toString();
}
方式二:
前端
 var submitList1=function () {
    var list=[];
    list.push("aa1");
    list.push("bb1");
    $.ajax({
        url:"/acceptList1",
        data:{datas:list},//或者使用data:{"datas[]":list}
        success:function (result) {
            console.log(result);
        }
    });
}
后端
/**
 * 这里的@RequestParam("datas[]") 中必须有[]
 * @param strList
 * @return
 */
@RequestMapping("/acceptList1")
@ResponseBody
public String acceptList1(@RequestParam("datas[]") List<String> strList){
    System.out.println(strList.toString());
    return strList.toString();
}
方式三(推荐):
前端
var submitList2=function () {
    var list=[];
    list.push("aa3");
    list.push("bb3");
    $.ajax({
        url:"/acceptList2",
        data:{datas:list.join()},
        success:function (result) {
            console.log(result);
        }
    });
}
后端
 @RequestMapping("/acceptList2")
@ResponseBody
public String acceptList2(@RequestParam("datas") List<String> strList){
    System.out.println(strList.toString());
    return strList.toString();
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值