2013-06-12 62 views
2

就拿這部分代碼例如春BindingResult在MVC控制器方法

@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對象?該對象在哪裏初始化並傳遞給該方法?

回答

4

傳遞給控制器​​方法的所有參數都由spring-mvc調度程序servlet進行初始化和填充。

User對象通過活頁夾實例化並映射到請求參數(DataBinder實現)。如果有問題,BindingResult充滿關於這些問題的信息並傳遞給您的方法。

+0

感謝,它是有道理的,BindingResult同樣適用於HttpServletRequest和HttpServletResponse。 – lolotron