BindingResult 作用原理

controller代码
@RequestMapping("")
    public String index(@Valid User user , BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            List allErrors = bindingResult.getAllErrors();
            ObjectError objectError = allErrors.get(0);
            System.out.println(objectError.getDefaultMessage());
            System.out.println(objectError.getObjectName());
            System.out.println(allErrors);
        }
        return "index";
    }

请求先来到DispatcherServlet的doDispatch 方法,最终会调用ModelAttributeMethodProcessor#resolveArgument方法

BindingResult 作用原理_第1张图片

调用DataBinder#validate方法后调用ConstraintTree#validateSingleConstraint,由它来调用具体的验证器

BindingResult 作用原理_第2张图片

 

具体的验证器

BindingResult 作用原理_第3张图片

 



 

转载于:https://www.cnblogs.com/dongma/p/10198768.html

你可能感兴趣的:(java)