首先spring+Thymeleaf必过的点
org.springframework.web.servlet.DispatcherServlet#doDispatch

那么先跟入handle()方法

然后跟进handleInternal方法

可以看到mav的获取方法,继续跟进invokeHandlerMethod

继续跟进invokeAndHandle

这里判断returnvalue是否有值,决定了2种类型的payload。returnValue的获取会invoke此Request对应的函数获取返回值,例如下面这个例子访问/path时,获取return的值为user/{lang}/welcome作为ModelAndView的view值。
@GetMapping("/path")
public String path

博客主要介绍了spring+Thymeleaf的处理流程,包括跟进handle()、handleInternal等方法,分析了ModelAndView的view值获取情况,以及DefaultView的获取过程。还阐述了transformPath()方法对payload的处理,最后讲解了表达式解析,如StandardExpressionParser.parseExpression的两次解析。
最低0.47元/天 解锁文章
886

被折叠的 条评论
为什么被折叠?



