带有 Thymeleaf 3 Beta 的 Spring Boot

Posted

技术标签:

【中文标题】带有 Thymeleaf 3 Beta 的 Spring Boot【英文标题】:Spring boot with Thymeleaf 3 Beta 【发布时间】:2016-02-05 18:49:41 【问题描述】:

Spring boot 似乎不能很好地与 Thymeleaf 3 beta 配合使用。

java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration due to internal class not found. 

This can happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake) 

....

 Caused by: java.lang.NoClassDefFoundError: org/thymeleaf/resourceresolver/IResourceResolver

关于如何让它发挥作用的任何想法?

本质上,我已经预先构建了 html 模板,这些模板并不真正符合 XHTML 标准,我想将它与 Thymeleaf 一起使用。 Thymeleaf 2 不支持 HTML,甚至 LEGACYHTML5 模式也会由于 Angular 标记而引发错误

所以,我坚持使用仅使用 Thyme2 且不支持 Thyme3 的 Spring Boot,但我的应用程序只能使用 Thyme3

【问题讨论】:

【参考方案1】:

这是正确的答案。这是要排除的类,以使下一个人更容易遇到此问题:

@SpringBootApplication(exclude=org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration.class)

【讨论】:

这是否意味着我们必须像普通的 spring 应用程序一样手动配置 Thymeleaf? 无手动配置。您只是忽略了 Spring Boot 对 Thymeleaf 的自动配置。我成功地排除了自动配置并使用迁移文档实现了基于 Java 的配置:thymeleaf.org/doc/articles/thymeleaf3migration.html【参考方案2】:

更新:从 1.4 开始,Spring Boot 支持 Thymeleaf 3,但版本 2 仍然是默认设置。有关如何使用 Thymeleaf 3 的详细信息,请参阅 the documentation。

Spring Boot 1.3 及更早版本不支持 Thymeleaf 3。您需要禁用 Boot 对 Thymeleaf 的自动配置并手动配置它。您可以使用 exclude attribute on @SpringBootApplication 禁用自动配置:

@SpringBootApplication(exclude=org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration.class)

【讨论】:

知道 Spring Boot 是否会发布支持 thyme 3 beta 的 beta 版本? 由于它仍处于测试阶段,目前还没有确定的支持 Thymeleaf 3 的计划。您可能想打开一个 Spring Boot 问题,以便考虑 1.4。 我会这样做的。谢谢安迪! 这方面有什么更新吗? Spring Boot 目前是否支持 Thymeleaf 3?我用 spring-boot 创建了一个项目,我看到 thymeleaf jars 是 2.x 但配置器是 3. 1.4 支持 Thymeleaf 3。有关详细信息,请参阅文档:docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…

以上是关于带有 Thymeleaf 3 Beta 的 Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

弹簧靴找不到 Thymeleaf 视图

使用@ url 语法传递给 Thymeleaf 的转义参数

Spring Boot中添加Thymeleaf模板

由于隐藏的输入,带有复选框的 Thymeleaf Spring 表单会生成嘈杂的 url

Spring & Thymeleaf:改变语言环境并停留在当前页面

Thymeleaf 构造带有变量的 URL