什么是数据绑定?
在执行程序时,SpringMVC会根据客户端请求参数的不同,将请求消息中的信息以一-定的方式转换并绑定到控制器类的方法参数中。这.种将请求消息数据与后台方法参数建立连接的过程就是SpringMVC中的数据绑定。
参数绑定要解决的问题是请求参数到controller 方法参数的传递。其中包括要解决的两个问题:
-
controller 通过什么方式接收页面传来的数据,接收页面提交的数据是通过方法形参来接收,
而不是在controller类定义成员变量接收! - 完成字符串类型到各种java数据类型的转换SpringMVC通过DataBinder组件完成上述工作。
Spring MVC如何完成数据绑定的呢?
在数据绑定过程中,Spring MVC框架会通过数据绑定组件(DataBinder)将请求参数串的内容进行类型转换,然后将转换后的值赋给控制器类中方法的形参,这样后台方法就可以正确绑定并获取客户端请求携带的参数了。接下来,将通过一张数据流程图来介绍数据绑定的过程。
简述下该过程:
- Spring MVC将ServletRequest对象传递给DataBinder;
- 将处理方法的入参对象传递给DataBinder;
- DataBinder调用ConversionService组件进行数据类型转换、数据格式化等工作,并将ServletRequest对象中的消息填充到参数对象中;
- 调用Validator组件对已经绑定了请求消息数据的参数对象进行数据合法性校验;
- 校验完成后会生成数据绑定结果BindingResult对象,Spring MVC会将 BindingResult对象中的内容赋给处理方法的相应参数。
数据绑定的分类
根据客户端请求参数类型和个数的不同,我们将Spring MVC中的数据绑定主要分为简单数据绑定和复杂数据绑定,接下来的博客中,就对这两种类型数据绑定进行详细讲解。
这里只是做总结性的概念介绍:
当前端请求的参数比较简单时,可以在后台方法的形参中直接使用Spring MVC提供的默认参数类型进行数据绑定。
常用默认参数类型: