关于SpringBoot无法通过重定向来访问templates模板中html页面的问题

时间:2024-03-13 10:24:21

关于SpringBoot无法通过重定向来访问templates模板中html页面的问题

今天在学习SpringBoot的时候,要实现一个登录界面登录成功然后重定向到一个新页面的功能。但是我在自己试验的过程中发现重定向失败了,网上找了好久也没有找到我想要的答案,最后通过自己结合网上的一些相关知识整理出来了重定向失败的原因和解决方案。

首先,下面的图片是我项目资源文件的目录,dashboard.html就是我要重定向的界面。
关于SpringBoot无法通过重定向来访问templates模板中html页面的问题
起初,我是这样写的:
关于SpringBoot无法通过重定向来访问templates模板中html页面的问题
但是运行的时候重定向失败了,我试了很多路径都不行。于是我把dashboard.html换成了static中的index.html,如下图所示:
关于SpringBoot无法通过重定向来访问templates模板中html页面的问题
结果一运行发现重定向成功了。这说明了我路径是没有问题的,但是问题出在哪儿呢?

后来在网上查找相关资料的时候发现,static中的页面是可以通过url直接访问的,而templates中的页面是不能直接访问的。由于重定向是二次请求,所以无法直接访问。

而要解决这个问题,就可以通过扩展SpringMVC的功能来实现。代码如下:
关于SpringBoot无法通过重定向来访问templates模板中html页面的问题
通过这样的配置,我们就可以直接用url的方式访问templates下的页面了。比如,此时我们要想访问dashboard.html,只需在地址栏输入localhost:8080/main.html就可以访问成功了。

因此,重定向的问题也就迎刃而解了,只需把return的内容改成redirect:/main.html就可以了。