码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC 数据绑定流程

时间:2017-11-29 20:52:13      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:servlet   参数绑定   targe   生成   类型转换器   isa   create   类型   数据格式   

数据绑定流程

一、SpringMVC主框架将ServletRequest 及目标方法入参实例传递给WebDataBinderFactory 实例以创建DataBinder实例对象。

二、DataBinder 调用装配在SpringMVC上下文中的ConversionService 进行数据类型转换、数据格式化工作。将Servlet中的请求信息填充到入参对象中。

三、调用Validator 组件对已经绑定了请求消息的入参对象的进行数据的合法性校验,并生成最终数据绑定结果BindingData对象。

四、SpringMVC抽取BindinResult 中的入参对象和校验错误对象进行,将他们赋给处理方法的响应入参。

//org.springframework.web.method.annotation.ModelAttributeMethodProcessor 中的代码

     WebDataBinder binder = binderFactory.createBinder(webRequest, attribute, name);
        if (binder.getTarget() != null) {
            if (!mavContainer.isBindingDisabled(name)) {
                bindRequestParameters(binder, webRequest);//这行代码进行请求参数绑定,执行这行代码会调用类型转换器。
            }
            validateIfApplicable(binder, parameter);//这行代码进行数据校验
            if (binder.getBindingResult().hasErrors() && isBindExceptionRequired(binder, parameter)) {
                throw new BindException(binder.getBindingResult());
            }
        }

 

SpringMVC 数据绑定流程

标签:servlet   参数绑定   targe   生成   类型转换器   isa   create   类型   数据格式   

原文地址:http://www.cnblogs.com/GooPolaris/p/7919702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!