视图解析源码分析
2022-02-22 17:13:18 0 举报
SpringBoot视图解析源码分析
作者其他创作
大纲/内容
invokeHandlerMethod()中①创建mavContainer,并给容器赋值ModelAndViewContainer mavContainer = new ModelAndViewContainer();invocableMethod.invokeAndHandle( mavContainer);②使用mavContainer获取mav对象 getModelAndView(mavContainer)
handleInternal()执行处理器方法,返回mav对象return mav = invokeHandlerMethod();
视图解析源码分析
view.render 中renderMergedOutputModel↓sendRedirect↓response.sendRedirect(encodedURL);
从5个viewResolver中遍历解析viewName其中第一个解析器,contentNegotiationViewResolver 持有其他4个视图解析器,使用内容协商解析器时,会先遍历其他解析器,获得candidateVIews,再从candidateViews中选取 bestView 返回其中遍历Thymeleaf解析器时,判断以redirect: 开头,并创建RedirectView RedirectView view = new RedirectView
ha.handle() return handleInternal()
处理分发结果processDispatchResult(mv);
doDispatcher方法找到handlerAdapter ha,调用handler方法返回 ModelAndView mv
收藏
收藏
0 条评论
回复 删除
下一页