品牌型号:联想ThinkPad X1
系统:Windows10家庭版
软件版本:Spring 5.3.7
在项目中,我们用Spring MVC做开发的时候,前后端交互是常见且基础的操作,我们后端如果想要完成数据查询、提交保存、修改删除等业务操作的话,就必须要拿到前端传来的数据。不过有很多刚学Spring MVC的伙伴们,在接收前端参数的时候不知道该用什么接收方式,或者是出现参数接收失败、报错或者数据为空的情况。Spring MVC为了适配不同的前端传参格式,提供了多种获取参数的方法,接下来我们为了帮各位搞懂数据交互的逻辑,针对新手提出的这些问题,给大家讲解下Spring MVC获取参数的几种方式,Spring MVC怎么获取前端数据的相关内容。
一、Spring MVC获取参数的几种方式
我们在做项目的时候,前端传给我们后端的数据格式并不统一,有时候是简单的普通参数,有时候是复杂的JSON对象,还有的是在路径中携带参数,Spring MVC提供了多种获取参数的方式,不需要我们手动去解析数据流。我们在后端的接口方法中,定义和前端参数名一致的形参,框架会自动完成参数绑定,不需要我们添加额外的注解,但是这种比较适合简单的查询请求。

上面的方式缺点也很明显,如果参数数量过多,方法代码会显得很杂乱,不适合复杂业务,我们可以考虑采用@RequestParam来专门接收表单提交、URL拼接的普通参数。

我们可以使用@PathVariable来接收路径参数,因为现在很多接口都喜欢把参数写在访问路径中,也就是REST风格接口,这种情况下普通取值方式是无法识别参数的,所以就需要依靠这类注解来抓取路径中的数据。

二、Spring MVC怎么获取前端数据
前面我们已经介绍了常用的几种取值方式了,相信很多小伙伴已经知道了对应的用法了,但是会好奇前端数据到底是怎么一步步传到我们后端然后被程序识别并获取的呢?不得不说,这个问题提的很好,如果是只是单纯的靠抄、靠记,时间一长,前面介绍的几种获取参数的方式肯定都容易忘记,还是要弄懂底层的执行流程。我们前端在发送数据的时候,无论通过浏览器、Postman还是页面,用户填写的数据发起请求后,数据会跟着请求一起打包发送的,都会依附在HTTP请求中。

请求在到达前端控制器的时候,都会经过DispatcherServlet,它不会直接去处理数据,但是会起到分发和调度的作用,识别这个请求是什么类型的,带了哪些参数,要访问哪个接口地址。

框架会根据我们写的注解和参数,自动解析请求里的数据,如果没有注解就按照参数名去匹配绑定,如果标注了@RequestParam就去抓取普通参数,路径参数则是由@PathVariable去抓取,不需要我们去手动写解析代码。

以上就是Spring MVC获取参数的几种方式,Spring MVC怎么获取前端数据的全部内容了。Spring MVC获取参数的方式有不少,如果是很简单的请求参数,我们只需要确保我们代码中的形参名和传来的请求参数名一致就可以接收到,对于表单提交或者是URL拼接的普通参数,我们可以用@RequestParam来接收,如果是路径参数,我们可以用@PathVariable来接收路径参数。当我们前端发送数据过来的时候,请求会经过DispatcherServlet,然后由它来分发和调度,完成参数绑定和封装。