-
什么是类型转换?
Spring MVC 中在控制器方法中 把 请求 中的 参数 映射为 指定类型,指定类型 可以是自己定义的类型,这就是Spring的类型转换。
-
类型转换的框架原理
术语定义:
a. ServletRequest : 请求
b. DataBuilder : 类似于DispatcherServlet 在整个框架原理中起调度作用,他是数据绑定的核心组件。
c. ConversionServies : 他是Spring类型转换体系的核心接口,可通过 org.springframework.context.support.ConversionServiesFactoryBean 在Spring上下文中定义
d. BindingResult : 包含 已完成 数据绑定 的 入参对象 和 相应校验错误对象
e. BindingResult : 数据校验对象
f. Validator : 处理数据的校验
框架原理疏导:
1.SpringMVC 框架把ServletRequest 对象传递给 DataBinder 对象处理。
2.DataBinder在处理之前 要求把 控制器方法 的参数(准确的说是处理方法入参对象)传递给Databinder对象
3.DataBinder 调用 Spring上下文 中的 ConversionServies对象 (组件)进行数据转换,数据格式化的工作,并将 ServletRequest对象 中的 数据 填充到 参数对象 (上文中的入参对象)中。
4.调用 Validator 组件对 已经完成 第3步骤 的参数对象(上文中的入参对象) 进行数据检验。
5.将结果保存到BindingResult 对象,SpringMVC 会把 BindingResult 对象 中的 内容 (处理结果)赋值给处理方法的相应参数