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

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

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

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

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

而要解决这个问题,就可以通过扩展SpringMVC的功能来实现。代码如下:
在这里插入图片描述
通过这样的配置,我们就可以直接用url的方式访问templates下的页面了。比如,此时我们要想访问dashboard.html,只需在地址栏输入localhost:8080/main.html就可以访问成功了。

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

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
在Spring Boot访问templates下的HTML页面,可以使用Thymeleaf模板引擎。Thymeleaf是一种现代化的服务器端Java模板引擎,可以将HTML页面Java代码结合起来。 首先需要在pom.xml添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 然后在application.properties配置Thymeleaf视图解析器: ```properties spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html spring.thymeleaf.mode=HTML spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.cache=false ``` 其,spring.thymeleaf.prefix配置了模板文件所在目录,spring.thymeleaf.suffix配置了模板文件的后缀名。 在controller,使用@RequestMapping注解来映射URL和方法,然后返回模板名称即可: ```java @Controller public class HelloController { @RequestMapping("/") public String index(Model model) { model.addAttribute("name", "World"); return "index"; } } ``` 其,Model是一个接口,用于在控制器向视图传递数据。 最后,在templates目录下创建index.html文件,可以使用Thymeleaf模板语言来渲染页面: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Hello</title> </head> <body> <h1>Hello, <span th:text="${name}"></span>!</h1> </body> </html> ``` 在上面的代码,使用了th:text属性来绑定数据,${name}是从控制器传递过来的数据。 最后,启动应用程序,访问http://localhost:8080/,就可以看到渲染后的HTML页面了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值