带有 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 Spring 表单会生成嘈杂的 url