第十三章 数据绑定
2020-04-23 本文已影响0人
Y_Jaaao
数据绑定介绍

Spring MVC是怎样完成的数据绑定
- 在数据绑定过程中,Spring MVC框架会通过数据绑定组件(DataBinder)将请求参数串的内容进行类型转换,然后将转换后的值赋给控制类中方法的形参,这样后台方法就可以正确绑定并获取客户端请求携带的参数了
数据绑定流程

- 1、Spring MVC将ServletRequest对象传递给DataBinder
- 2、将处理方法的入参对象传递给DataBinder
- 3、DataBinder调用ConversionService组件进行数据类型转换、数据格式转换等工作,并将ServletRequest对象中的消息填充到参数对象中
- 4、调用Validator组件对已经绑定了请求消息数据的参数对象进行数据合法性校验
- 5、校验完成后会生成数据绑定结果BindingResult对象,Spring MVC会将BindingResult对象中的内容赋给处理方法的相应参数
绑定简单数据类型
- 简单数据类型的绑定,就是Java中几种基本数据类型的绑定,如int、String、Double等类型
- 注意:有时前端请求中参数名和后台控制器类方法中的形参名不一样,会导致后台无法正确绑定并接收到前端请求的参数(参数名不一样时会在控制台输出null)
-
解决:使用Spring MVC提供的@RequestParam注释类型进行间接数据绑定
绑定默认数据类型
-
根据客户端请求参数类型和个数的不同,将Spring MVC中的数据绑定分为简单数据绑定、复杂数据绑定
-
以HttpServletRequest类型的使用为例,演示默认数据类型绑定的使用过程:
绑定POJO类型(针对多类型、多参数的请求)
- POJO类型的数据绑定,就是将所有关联的请求参数封装在一个POJO中,然后再方法中直接使用该POJO作为形参来完成数据绑定
-
通过用户注册案例,演示POJO类型的数据绑定
-
解决请求参数中的中文乱码问题(在web.xml中配置Spring提供的编码过滤器来统一编码)

绑定包装POJO
-
通过订单查询案例,演示包装POJO数据绑定的使用
-
注意事项
包装POJO类型绑定时注意事项
绑定数组-new
-
通过批量删除用户案例,演示绑定数组的操作使用

自定义数据绑定
- 有些数据类型无法直接进行数据绑定,必须先经过数据转换,如日期数据
-
对于特殊数据类型,就要自定义转换器(Converter)/格式化(Formatter)来进行数据绑定
绑定集合(在包装类中定义一个包含用户信息类的集合,然后在接收方法中将参数类型定义为该包装类的集合)
-
通过批量修改用户案例,演示集合绑定的操作使用