springboot中前端ajax如何给controller提交数组参数?
说明
我有个需求,前端批量添加一堆商品明细。也就是说会有一个商品ID,然后一堆商品明细,多行。
如此一来,针对后端接口肯定是要以数组或列表方式接收这个商品明细数组了。
前端代码
关键地方在于以formdata形式请求:
// 以换行符作为分隔出一个数组
var arr = data.field.kms.split('\n');
$.ajax({
url: ctx+'/km/addBatch',
type: "POST",
dataType: "json",
data: {"goodsId": $("#goodsId").val(), "kms": arr},
success: function (data) {
layer.closeAll();//关闭所有的弹出层
table.reload('kmTab');
}
});
接口代码
核心就是: @RequestParam(“kms[]”) String[] kms
为什么要指定参数名称是 kms[]
因为前端是以formdata形式提交的数据,仔细看下谷歌浏览器中请求参数情况一目了然:
@PostMapping("/addBatch")
@ResponseBody
public Result<String> addBatch(Integer goodsId, @RequestParam("kms[]") String[] kms){
List<GoodsItem> list = new ArrayList<>();
GoodsItem entity = null;
for (int i = 0; i < kms.length; i++) {
entity = new GoodsItem();
entity.setGoodsId(goodsId);
entity.setKm(kms[i]);
entity.setCreateTime(new Date());
list.add(entity);
}
goodsItemService.saveBatch(list);
return ResultUtil.ok();
}
分类:
Java项目实战
, # Spring-Boot
标签:
springboot数组参数
, 提交数组参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构