1. 程式人生 > >SpringMVC 數據綁定流程

SpringMVC 數據綁定流程

信息 數據 validate style attr 合法性 not ont 方法

數據綁定流程

一、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 數據綁定流程