【发布时间】:2014-12-23 20:58:09
【问题描述】:
我最近通过 Spring MVC 文档了解了 DispatcherServlet 下的请求处理流程
1)创建请求上下文
2)通过准备好的处理程序映射找到处理程序/控制器 上下文启动
3)如果已配置,则执行 Interceptors preHandler 方法
4)执行Handler/Conroller方法
5)如果已配置,则执行拦截器 postHandler 方法
6) 处理异常(如果有)
7)渲染视图
8)如果已配置,则在完成方法后执行拦截器
现在我有以下方法
@RequestMapping(value="/userHistory", method=RequestMethod.GET)
public @ResponseBody UserDetails getUserHistory(Model model, @valid UserDetail userDetail HttpServletRequest request, HttpServletResponse response) {
model.addAttribute("userDetail", new userDetail());
}
我的问题是在上述请求处理流程中的什么时间点,DispatcherServlet 将请求中的数据绑定到模型和 userDetail 对象?
类似地,dispacherservlet 在什么时候触发对带有有效注释的 UserDetail 对象的验证?
更新:- 假设我已经像这样在控制器方法下设置了 customValidator。现在在什么时间点customValidation
InitBinder 会被执行吗?
@InitBinder
private void initBinder(WebDataBinder binder) {
binder.setValidator(customValidator);
}
【问题讨论】:
标签: java spring-mvc