java - 升级到 Thymeleaf 3 并在 Spring 中重新实现富 HTML 电子邮件

标签 java spring thymeleaf

我正在将我的项目从 Thymeleaf 2 迁移到 3,但我遇到了电子邮件模板解析器干扰我的 Web 模板解析器的问题。

当我们第一次实现 Thymeleaf 时,我们遵循此文档以允许使用电子邮件模板和 Web 模板并且没有出现任何问题(第 4.2 节):

http://www.thymeleaf.org/doc/articles/springmail.html

在转换到 Thymeleaf 3 的过程中,我只使用了 HTML 模板的一个模板解析器(使用 SpringResourceTemplateResolver)并且转换很好。我能够毫无问题地运行我的应用程序,并且所有呈现的 View 模板都没有问题。

但是,当包含电子邮件模板解析器(使用 ClassLoaderTemplateResolver)时,在转到返回 View 的任何 Controller 端点时会发生以下错误:

java.io.FileNotFoundException: ClassLoader resource "thymeleaf/thymeleaf/login.html" does not exist

这表明它正在尝试从 ClassLoaderTemplateResolver 而不是 SpringResourceTemplateResolver 加载模板。在 Thymeleaf 2 中设置 Order 属性解决了这个问题,但这在 Thymeleaf 3 中似乎不起作用。

我在 Thymeleaf 3 文档中找不到任何关于像 Thymeleaf 2 文档中那样有 2 个模板解析器的帮助。

关于如何让这个工作或文档我可能忽略了的任何建议?

最佳答案

我有相同的设置(用于电子邮件的 ClassLoaderTemplateResolver 和用于 html 页面模板的 SpringResourceTemplateResolver)。我认为您需要设置此属性:

resolver.setCheckExistence(true);

无论哪个模板解析器先发生,否则 spring 将假定它存在并且您将看到您看到的错误。

关于java - 升级到 Thymeleaf 3 并在 Spring 中重新实现富 HTML 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39615624/

相关文章:

java - Android Studio 4.1 调试器断点不起作用

java - 如何在 spring security/thymeleaf 中自动生成 csrf token 而不使用 @EnableWebMvcSecurity

jquery - 如何通过先前的选择填充下拉列表 Spring thymeleaf

java - 无法找到或加载主类: Executable JAR from Maven

java - 使用 IntelliJ IDEA IDE 进行 Selenium 自动化打开 IE 9 时出现错误

Java:创建全局图形对象

java - 如何调试 @Scheduled spring boot 方法或服务方法?

java - 如何重置 Spring 托管 Bean

java - Spring MVC : please explain difference between @RequestParam and @ModelAttribute

java - Spring MVC + Thymeleaf : Updates to static resources