浅析SpringBoot中使用thymeleaf找不到.HTML文件的原因

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

浅析SpringBoot中使用thymeleaf找不到.HTML文件的原因

揪一下兔耳朵   2020-07-30 我要评论

本文着重讲解了SpringBoot中使用thymeleaf找不到.HTML文件的原因分析,本文为大家做详细介绍,希望能够帮助到您,欢迎大家阅读和收藏

thymeleaf是目前最新的模板引擎,它和springboot完美搭配,让前后端不在疏远
首先先介绍一下市面上出现过的模板引擎

1, Verlocity 距今有10多年之久,是由Apache推出的 Struts2 底层使用2,Freemarker,距今有10多年之久, 第三方小公司推出,后来得到了Apache的认可,在Struts2这个框架中, 底层使用Freemarker. SpringBoot 默认使用Freemarker是以.ftl结尾的文件.
3,Thymeleaf是以.html结尾的文件.

那么,SpringBoot+thymeleaf找不到.HTML文件的原因有那些呢?

1,首先确认是否导入thymeleaf依赖

在这里插入图片描述

2,确认自己写的.html为后缀的文件是否放到 resources/templates/ 文件夹下。

在这里插入图片描述

3,确认自己的Controller类要放在与 有@SpringBootApplication注解的启动类相同包或者子包下。
4,确认Controller类不能使用 @RestController 或者 @ResponseBody注解,否则会直接return该字符串,是return不到目标html的。

在这里插入图片描述

有的朋友可能大意在启动引导类中写了 @RestController注解,
导致最后返回的只有一个字符串.如图所示 search.

在这里插入图片描述

ps:下面看下Spring boot找不到template下面的html文件解决方法

静态页面

spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下

/static

/public

/resources

/META-INF/resources


例如 resources建立一个static目录和index.htm静态文件,访问地址 http://localhost:8082/index.html

如果需要使用templates,thyleaf模版,首先Spring boot项目需要添加依赖,这样才能找到templates下面的*.html文件

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

例如:

这样就可以使用:localhost:8082/crawler/here来访问这个aaa.html文件了。

端口8082是因为在application.properties文件里面设置server.port=8082,一般tomcat默认的端口是8080

总结

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们