MVC Controller方法中的Spring BindingResult

时间:2013-06-12 08:02:15

标签: java spring spring-mvc binding

以此部分代码为例

@RequestMapping(method=RequestMethod.POST)
public String addUserFromForm(@Valid User user, BindingResult bindingResult){
    if(bindingResult.hasErrors()){
        return "users/edit";
    }
    userService.saveUser(user);
    return "redirect:/users/"+user.getName();
}

控制器的方法如何知道BindingResult对象?该对象初始化并传递给方法的位置在哪里?

1 个答案:

答案 0 :(得分:4)

传递给控制器​​方法的所有参数都由spring-mvc调度程序servlet初始化并填充。

User对象被实例化并通过绑定器(DataBinder实现)映射到请求参数。如果有问题,BindingResult会填写有关这些问题的信息并传递给您的方法。