SpringMVC redirect 跳转问题处理

参考
https://blog.csdn.net/qq924862077/article/details/55668451

redirect 请求过程


  1. http://localhost:8080/back/login.htm当输入这个地址时
    SpringMVC redirect 跳转问题处理_第1张图片
    image.png

这里会跳转到loginPage.htm 这个controller里(原理就是相当于浏览器里重新输入地址访问这个controller),这里使用的是相对地址,在此请求路径下找相应路径,最后是这个路径:http://localhost:8080/back/loginPage.htm。请求结束浏览器地址会变为此地址。

如果写成这个就是绝对路径:return new RedirectView("/loginPage.htm"); 最后路径会是这样:http://localhost:8080/loginPage.htm,相当于项目路径 + 此路径。

问题:
return "redirect:loginPage.htm";这种写法就报错。不知为什么。

翻了半天源码找到原因了:


SpringMVC redirect 跳转问题处理_第2张图片
image.png

这里对不上。

渲染view过程


SpringMVC redirect 跳转问题处理_第3张图片
image.png
SpringMVC redirect 跳转问题处理_第4张图片
image.png
SpringMVC redirect 跳转问题处理_第5张图片
image.png
SpringMVC redirect 跳转问题处理_第6张图片
image.png
SpringMVC redirect 跳转问题处理_第7张图片
image.png
  • 解决办法
    spring-mvc.xml 配置里面之前只配置了 *.ftl , 现在加上 *.htm就行了。


    SpringMVC redirect 跳转问题处理_第8张图片
    image.png
// 这样也行

你可能感兴趣的:(SpringMVC redirect 跳转问题处理)