SpringMVC 數據綁定流程
阿新 • • 發佈:2017-11-29
信息 數據 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 數據綁定流程