持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情
第一种:使用控制器方法形参的方式(常用)
第二种:使用模型传参的方式( 如果前台往后台传递的参数非常多,如果还使用形参的方式传递,非常复杂。我们可以使用模型传参的方式,把多
个请求的参数封装到实体类中。 )(最常用)
第三种:使用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字符串。
小布出品,必属精品❥(^_-)