@RequestMapping("/userlist.do")
public String getUserList(Model model){ HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
model.addAttribute("userList", sysUserService.findAll()); return "user_list";
}

通常在编码时,只需要往model中addAttribute()值后,就可以在JSP中通过EL表表达式,或者JSTL标签直接取到值了:

 

SpringMVC控制器设值原理分析(ModelAndView的值通过HttpServletRequest直接取到的原因)-LMLPHP

常规的理解是,EL和JSTL只是取Request、Session等作用域中的数据的,那么SpringMVC何时将代码中的model中的“userList”集合数据转存到了request作用域中的呢?

DEBUG SpringMVC源码之DispatchServlet的1208行----->AbstractView第367行才明了:

SpringMVC控制器设值原理分析(ModelAndView的值通过HttpServletRequest直接取到的原因)-LMLPHP

04-25 18:27