Spring spring

Spring中文网站 > Spring Modulith > Spring MVC如何接收前端数组 Spring MVC怎么获取表单数据
Spring MVC如何接收前端数组 Spring MVC怎么获取表单数据
发布时间:2026/06/30 15:43:27

品牌型号:联想ThinkPad X1

系统:Windows10家庭版

软件版本:Spring 5.3.7

我们在工作中做前后端联调开发的时候,表单提交、批量传参都是很常见的业务场景,有不少开发小伙伴经常会卡在数据接收这一步。之前我们在做Web开发的时候,页面勾选多选框、批量提交列表数据,前端会把数据打包成数组格式传递给后端,可是现在用上Spring MVC框架了,发现经常出现参数接收不到、数据解析失败或者是格式匹配错误这些问题。很多人熟悉普通单个表单字段的获取方式,但是一旦换成了数组类型就不知道注解的用法、请求的提交方式以及参数命名规则。实际上,在项目中我们不管是简单的表单数组还是复杂对象数组,都有对应的适配写法。下面就给大家介绍一下Spring MVC如何接收前端数组,Spring MVC怎么获取表单数据的相关内容。

一、Spring MVC如何接收前端数组

做项目的时候,我们要实现批量删除、批量选中、批量保存等功能,都需要前端向后端传递数组数据,而Spring MVC针对前端数组传参提供了多种适配方法,适合不同的请求类型,比较常见的是普通表单提交的简单数组传参,这种场景下,没有复杂注解,直接使用控制器方法的数组参数就可以接收。

模拟批量删除的场景
图1:模拟批量删除的场景

只需要前端通过表单多选框、多同名input标签提交数据的时候参数名统一,后端直接定义对应类型的数组参数,参数名跟前端保持一致,就能实现自动接收封装数据,这种方式适配GET、POST普通表单请求。

后端直接用同名数组接收前端数组
图2:后端直接用同名数组接收前端数组

如果前端通过Ajax传递JSON格式的数组,单纯靠数组参数是无法解析的,需要配合@RequestBody注解来读取JSON数据并映射为Java数组或者集合,这是当前前后端分离项目中主流的方式。

使用注解接收JSON格式的数组
图3:使用注解接收JSON格式的数组

也可以使用集合List接收数组数据,Spring MVC会自动完成适配转换,日常开发中List的使用场景比数组更灵活些。

二、Spring MVC怎么获取表单数据

除了我们上面一起探讨的数组传参,平时我们在开发的时候更多的还是用普通表单提交数据,不管是传统的页面表单,还是前端简单的form-data格式提交,都是我们经常会遇到的请求场景。

form表单
图4:form表单

很多新手开发在获取表单数据的时候,经常会遇到参数为空、字段不匹配、数据无法封装的情况,基础的获取方式可以直接通过形参接收,不过这种适合表单字段数量少且参数简单的情况,只要前后端的参数名一致,Spring MVC就能自动完成参数绑定。

形参接收普通字段和数组
图5:形参接收普通字段和数组

一旦表单字段较多,在Controller中逐个定义形参会导致代码冗余并且不利于后期维护,这时候我们可以考虑使用实体类来作为方法参数,框架会自动将所有表单数据封装到实体对象中。

用实体对象来接收参数
图6:用实体对象来接收参数

还有一种方法就是通过HttpServletRequest对象获取,这种方式比较灵活,可以手动获取表单内的任意字段数据,适合参数动态变化需要自主处理参数的特殊情况。

直接传入HttpServletRequest对象
图7:直接传入HttpServletRequest对象

以上就是Spring MVC如何接收前端数组,Spring MVC怎么获取表单数据的全部内容了。Spring MVC可以通过参数名跟前端保持一致的方式去接收数组。如果前端通过Ajax传递JSON格式的数组,需要配合@RequestBody这个注解,在平时开发的时候也可以使用List来接收数组。此外Spring MVC获取表单数据可以直接通过参数名绑定的方式,如果表单字段多的话,可以定义一个实体类来接收,或者是用HttpServletRequest对象来获取。

180 1563 6924