我正在遵循以下教程,该教程基于使用Thymeleaf模板发送电子邮件。

链接到教程:
http://www.thymeleaf.org/doc/articles/springmail.html

在此示例中,在多个实例中使用了TemplateMode

 private ITemplateResolver textTemplateResolver() {
    final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
    templateResolver.setOrder(Integer.valueOf(1));
    templateResolver.setResolvablePatterns(Collections.singleton("text/*"));
    templateResolver.setPrefix("/mail/");
    templateResolver.setSuffix(".txt");
    templateResolver.setTemplateMode(TemplateMode.TEXT);
    templateResolver.setCharacterEncoding(EMAIL_TEMPLATE_ENCODING);
    templateResolver.setCacheable(false);
    return templateResolver;
}

private ITemplateResolver htmlTemplateResolver() {
    final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
    templateResolver.setOrder(Integer.valueOf(2));
    templateResolver.setResolvablePatterns(Collections.singleton("html/*"));
    templateResolver.setPrefix("/mail/");
    templateResolver.setSuffix(".html");
    templateResolver.setTemplateMode(TemplateMode.HTML);
    templateResolver.setCharacterEncoding(EMAIL_TEMPLATE_ENCODING);
    templateResolver.setCacheable(false);
    return templateResolver;
}


在搜索时,我发现它位于org.thymeleaf.templatemode.TemplateMode中,但无法将其导入到我的项目中

所以TemplateMode给我错误。如何解决错误?

最佳答案

Thymeleaf 3.0.0中添加了类org.thymeleaf.templatemode.TemplateMode

只要您依赖Thymeleaf> = 3.0.0的版本,便可以使用TemplateMode,因此项目的classapth上不可用TemplateMode的事实强烈暗示您正在使用Thymeleaf
最重要的是,链接到的example使用Thymeleaf> = 3.0.0,而您使用Thymeleaf <3.0.0

FWIW,您的问题还标记了spring,所以也许您是在传递性地获取Thymeleaf依赖性(也许是通过spring-boot-starter-thymeleaf?)。您可以运行mvn dependency:tree并查看以下内容的输出:org.thymeleaf:thymeleaf以了解(a)您正在使用的Thymeleaf版本以及(b)该版本来自何处。

07-24 14:51