天天看點

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來重定向。