Spring 和 Thymeleaf:未配置模板模式“HTML”

8
我正在尝试弄清Spring Pet Clinic项目的情况: https://github.com/spring-projects/spring-petclinic 我想创建自己的基本Spring项目,并想要使用Thymeleaf,但由于不断出现“未配置模板模式“HTML”的”错误,我不知道该怎么做。
我一直在通过分析Pet Clinic项目来学习这个问题,然后开始浏览教程:http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html,其中有关于引擎和解析器的信息,在Pet Clinic项目中没有提到。
我的问题是:这里到底发生了什么,我需要采取哪些步骤才能在空的Spring项目中运行Thymeleaf?
3个回答

9
所以我已尝试了我所能做的一切,结果可能是默认的thymeleaf解析器是针对HTML5的(这意味着application.properties文件中的spring.thymeleaf.mode属性等于HTML5)。
默认的application.properties值:http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html pet clinic项目中的“spring.thymeleaf.mode=HTML”行在该项目中某种程度上没有影响,但在我的项目中有影响。事实证明,我试图将默认解析器切换为HTML,但我没有找到它。这导致了上述错误。在application.properties中删除或注释此行可解决问题。

0

看起来你没有使用Spring Boot?那个Github项目(pet-clinic)是使用Spring Boot制作的。在Spring Boot中,几乎所有的配置都被抽象化了。这意味着已经有默认的主观配置可以直接使用,而且这些配置是隐藏在代码之外的。其中包括ViewResolver配置,这就是为什么你无法从代码库中看到它的原因。


我相当确定我正在使用Spring Boot,我的依赖项包括:spring-boot-starter-actuator、spring-boot-starter-cache、spring-boot-starter-data-jpa、spring-boot-starter-web、spring-boot-starter-thymeleaf和spring-boot-starter-test</artifactId>。无论如何,你能告诉我更多关于“所有配置都被抽象化”这个短语的信息吗? - asdfgh
好的。无论如何,这意味着这些“有主见”的配置被隐藏在代码中。使用自己的配置的唯一方法是找到一种覆盖该配置的方式,通常在他们的文档中提供。 - dapregala

0

我在我的Spring Boot Thymeleaf项目中遇到了同样的消息。后来发现在gradle.properties中已经删除了Thymeleaf支持:

### lib versions ###
serviceBaseVersion=0.12.0
springBootVersion=1.5.14.RELEASE
swaggerVersion=2.6.+
thymeleaf.version=3.0.+
thymeleaf-layout-dialect.version=2.1.+

最后两行缺失了,修复后一切正常运行了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接