项目报错-springboot-thymeleaf

本文详细记录了解决前端使用Thymeleaf时,由于返回非JSON数据导致的TemplateInputException错误,包括调整Controller返回类型、修复HTML路径错误,以及确保HTML格式符合Spring Boot与Thymeleaf的要求。

项目报错

问题

当我在前端页面调用后端查询数据时,因为前端使用了thymeleaf,报错如下:org.thymeleaf.exceptions.TemplateInputException: Error resolving template,因为花了挺长时间才解决,所以记录一下。

image-20220604021735124

解决

1.、在controller层请求处理完了返回数据时,没有使用@RestController或@ResponseBody而返回了非json格式

这种情况下返回的数据thymeleaf模板无法解析,这也正是我报错的原因。

解决方式:最好的解决方式就是在你所请求的方法上面加一个@ResponseBody即可。或者将@Controller换成@RestController,不过需要注意有没有其他的方法返回了html页面。

另外,我在网上找到了一些其他原因导致这个错误的,这里也记录一下

2、在你的controller层对应的方法返回html路径及名称时,在前面多加了一个/

去掉/即可

3、在使用springboot的过程中,如果使用thymeleaf作为模板文件,则要求HTML格式必须为严格的html5格式,必须有结束标签,否则会报错。

解决方法:

添加配置文件:

spring.thymeleaf.content-type: text/html 
spring.thymeleaf.cache: false 
spring.thymeleaf.mode: LEGACYHTML5

pom.xml 添加以下依赖

<dependency> 
<groupId>net.sourceforge.nekohtml</groupId> 
<artifactId>nekohtml</artifactId> 
<version>1.9.22</version> 
</dependency> 

1.9.22


本文参考自:https://blog.youkuaiyun.com/Lin_xiaofeng/article/details/79122053 有更多的关于thymeleaf报错的解决方案
### VSCode 开发 Spring Boot 项目常见错误及其解决方案 #### 主类未找到问题 当在VSCode中尝试运行Spring Boot项目时,如果收到找不到主类的错误提示,通常是因为IDE未能正确识别项目的入口点。确保`@SpringBootApplication`注解被放置在一个合适的启动类上,并且该文件位于源码根目录下的适当位置[^1]。 对于此类问题的一个可能修复方法是在`pom.xml`或者`build.gradle`里指定main-class属性: ```xml <properties> <start-class>com.example.demo.DemoApplication</start-class> </properties> ``` #### Bean 创建失败 (BeanCreationException) 另一个常见的问题是应用程序启动期间发生的bean创建异常(`BeanCreationException`)。这类错误往往源于依赖注入配置不当或是缺失必要的库或组件。仔细审查堆栈跟踪中的具体消息可以帮助定位根本原因并采取相应措施来解决问题[^2]。 为了排查这个问题,建议执行以下操作: - 检查所有的@Autowired标记是否都指向了存在的beans; - 验证所有第三方jar包已经添加到classpath中; - 如果使用的是Lombok插件,请确认其安装无误并且版本兼容; #### JDK 版本不匹配 有时,在VSCode环境下构建和部署Spring Boot应用可能会因为选择了不合适版本的JDK而导致编译或运行期错误。例如,从JDK8迁移到更高版本的过程中可能出现一些API变更带来的影响[^3]。 针对这种情况,应该调整项目Java Compiler设置以及确保使用的Maven/Gradle工具链与目标平台相一致。可以通过修改`.mvn/jvm.config` 或者 `.gradle/java-home.properties` 文件来进行相应的更改。 #### 资源路径配置失误 最后,关于静态资源如HTML页面无法加载的问题,可能是由于视图解析器默认查找的位置不符合预期所致。特别是当你采用模板引擎比如Thymeleaf的时候,需要特别注意这些细节。 要修正这一点,可以在`application.yml` 中明确定义静态内容所在的目录结构: ```yaml spring: resources: static-locations: classpath:/static/,classpath:/public/ ``` 通过上述几个方面的检查和调整,大多数情况下能够有效解决VSCode开发环境中遇到的各种Spring Boot相关的问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值