天天看点

Spring MVC 中重定向 及 重定向源码跟踪

Spring MVC 中重定向 及 重定向源码跟踪

在index.jsp加上一个超链接跳转到这个testredirect就行。后台会正常的打印数据,前台重定向到根目录下的index.jsp。

看源码

一步一步打断点。先把return断掉。

Spring MVC 中重定向 及 重定向源码跟踪

前天请求,后台就会进入debug模式,向上找,找到dodispatch

Spring MVC 中重定向 及 重定向源码跟踪

你就会发现是在这里返回的mv,这个mv就是modelandview类型。底下有处理这个mv的processdispatchresult,点进去。

Spring MVC 中重定向 及 重定向源码跟踪

会找到渲染的方法render,点进去

Spring MVC 中重定向 及 重定向源码跟踪

可以看到是在这里通过viewname给view赋值,具体赋值点进去

Spring MVC 中重定向 及 重定向源码跟踪
Spring MVC 中重定向 及 重定向源码跟踪

找到第一个抽象方法abstractcachingviewresolver

Spring MVC 中重定向 及 重定向源码跟踪

你会发现其实是在这里creatview的,继续

Spring MVC 中重定向 及 重定向源码跟踪

继续找到urlbasedviewresolver

Spring MVC 中重定向 及 重定向源码跟踪

到这里就功德圆满了,可以看到根据前面的redirect来重定向。