简单聊一下SpringMvc接收前台参数的几种方式——小布

251 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情

抽象.jpg

第一种:使用控制器方法形参的方式(常用)

第二种:使用模型传参的方式( 如果前台往后台传递的参数非常多,如果还使用形参的方式传递,非常复杂。我们可以使用模型传参的方式,把多

个请求的参数封装到实体类中。  )(最常用)

第三种:使用HttpServletRequest对象传参

在servlet时代,我们可以使用HttpServletRequest对象的getParameter方法获取参数,在spring mvc中也可以获取到HttpServletRequest对象,获取该对象后,就可以使用之前的方式接收参数了 。

在形参中不光可以获取HttpServletRequest对象 ,也可以获取到HttpServletResponse ,HttpSession对象 在整合SSM框架中,前端传参跟后台接收参数之间的问题,容易遇上的坑。 SpringMVC在controller层接收后台参数几种方式: 1.通过HttpServletRequest接收请求参数;

2.通过处理方法的形参接收请求参数,自动装箱;

3.通过@RequestParam注解可以获取请求的参数

4.通过@PathVariable注解可以获取URL中的参数

5.通过@ModelAttribute注解接收请求参数

6.通过@RequestBody注解接收请求参数

在前端页面中是用一个表单,然而表单中参数多,如果每一个都用@RequestParam注解将请求参数区数据映射到功能处理方法的参数上,显得特别繁重的;但是用实体类直接接收参数的列表就会变得非常简便。 比如:

在前端的表单中信息是特别多的,使用@RequestParam注解将参数数据映射到参数中,显然是不友好的;所以可以直接使用实体类接收参数(多条数据可以使用list集合,也可以使用数据形式)。

后台使用实体类接收参数,前端传到后台需要跟后台接收的类型一致,如果类型不一致,后台会报json转换异常:

后台接收的参数格式是:Json字符串,传入json对象还是会出现json格式转换错误,实体类中不同类型的字段需要自动匹配。

在提交是遇到的问题,前端因为表单数据量大,每个提交比较麻烦,使用表单序列化获取提交参数之后,提交的数据变成一组拼接的字符串:

提交就不符合后台接收的参数格式了。 在使用ajax提交的时候,需要注意转换格式:JSON.stringify()//JSON.stringify() :转换:包括所有的数据类型,通常是对象或者数组

注意:

1、使用实体类接收的,是list集合或者数组是,需要加上RequestBody,

2、控制器需要指定返回的内容类型,

3、前端ajax提交也需要指定发送信息至服务器时内容编码类型

4、注意使用表单序列化后要转换为json对象,提交的时候需要把表单数据转换为json字符串。

小布出品,必属精品❥(^_-)