在Java的Controller中获取ModelAndView返回值中的model里面的值。
通常我们使用springmvc的时候会使用ModelAndView来返回给前端页面以指定视图页面和返回的属性值。
但是有的时候我们需要在接口中获取这个modelAndView的值,比如有的框架里面已经写好了返回的是modelAndView,我们不好修改,但是我们又想要这个返回值forward到另一个接口而不是页面。
这时候modelAndView中的view指的就是我们要请求的接口,但是我们怎么在我们请求的接口中获取这个model的值呢。
这个我们就需要去找到modelAndView中的model,SpringMvc到底放到哪里去了。
使用debug跟踪请求的过程,发现处理转发的主要逻辑在org.springframework.web.servlet.view.InternalResourceView#renderMergedOutputModel
Override
protected void renderMergedOutputModel(
Mapmodel, HttpServletRequest request, HttpServletResponse response) throws Exception {
// Expose the model object as request attributes.
exposeModelAsRequestAttributes(model, request);
// Expose helpers as request attributes, if any.
exposeHelpers(request);
// Determine the path for the request dispatcher.
Strin