Spring Boot在Controller传入List集合解决办法

本文介绍了在Spring Boot的Controller中如何处理List类型的参数,提供了经过测试的代码示例,包括Controller端、JS端及RESTClient的请求格式。同时提到在MyBatis中使用List作为动态SQL参数时的注意事项,特别指出参数collection应为list而非array。

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

不多说直接上代码,以下经过测试完全OK

Controller端的代码

	/**
	*@RequestBody必须要
	*传入的是List<Long>类型
	*/
	@RequestMapping(value = "/test7")
    public List<Long> test7(@RequestBody List<Long> longs){
        System.out.println(longs);
        return longs;
    } 

JS端的测试代码

	$(document).ready(function(){
        var list=[1,2,3];		
        //集合必须这样写
       // 解决前我一直是{"long":{1,2,3}},然后一直报JSON转化错误
        $("button").click(function(){
            $.ajax({
                type:'post',
                url:'http://localhost:8080//test7',
                dataType:"json", //必须声明
                contentType:"application/json", //必须声明
                data:JSON.stringify(list),  //必须声明
                success:function (data) {
                    console.log(data);
                }
            })
        });
    });

使用RESTClient的格式

使用RESTClient

  • 跟着做就好了
  • 不用再声明一个类里面有List参数去让Spring Mvc接收
  • 还有MyBatis如果你传过去动态Sql的参数是List集合类,在foreach中,参数collection必须是list,如果是数组就是array

示例(批量删除操作)

    <delete id="deleteByList" parameterType="java.lang.Long">
        DELETE FROM  public.student
        WHERE sid in
        <foreach collection="list"  item="sid" open="(" close=")" separator="," >
            #{sid}
        </foreach> ;
    </delete>

本人也是JAVA小学生,如果有更好的方法麻烦评论留下更好的方法。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值