当前位置: 首页 > 知识库问答 >
问题:

Thymeleaf-错误解析模板“email-inlineimage.html”

颛孙越
2023-03-14

所以,我看到在Stackoverflow中都能回答这个问题,但对我没有任何帮助。(SpringMVC+Thymeleaf,错误消息是:模板可能不存在,或者任何已配置的模板解析程序都无法访问

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.2.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util-3.2.xsd">

<!-- Basic Configurations -->
<context:annotation-config/>

<context:component-scan base-package="com.podium.italia.controller"/>
<context:component-scan base-package="com.podium.italia.service"/>
<context:component-scan base-package="com.podium.italia.model"/>
<context:component-scan base-package="com.podium.italia.repository"/>

<mvc:annotation-driven />
<mvc:default-servlet-handler />

<!-- i18n -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="WEB-INF/i18n"/>
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="useCodeAsDefaultMessage" value="true"/>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver">
    <property name="defaultLocale" value="en"/>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>

<!-- Email support -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com" />
    <property name="port" value="587" />
    <property name="protocol" value="smtp" />
    <property name="username" value="smmailsender@gmail.com" />
    <property name="password" value="Style@mix2014" />
    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.smtp.quitwait">true</prop>
        </props>
    </property>
</bean>

<!-- THYMELEAF: Template Resolver for email templates -->
<bean id="emailTemplateResolver" class="org.thymeleaf.templateresolver.ClassLoaderTemplateResolver">
    <property name="prefix" value="mail/" />
    <property name="templateMode" value="HTML5" />
    <property name="characterEncoding" value="UTF-8" />
    <property name="order" value="1" />
</bean>

<!-- THYMELEAF: Template Resolver for webapp pages   -->
<!-- (we would not need this if our app was not web) -->
<bean id="webTemplateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/WEB-INF/" />
    <property name="templateMode" value="HTML5" />
    <property name="characterEncoding" value="UTF-8" />
    <property name="order" value="2" />
</bean>

<!-- THYMELEAF: Template Engine (Spring3-specific version) -->
<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolvers">
        <set>
            <ref bean="emailTemplateResolver" />
            <ref bean="webTemplateResolver" />
        </set>
    </property>
</bean>

<!-- THYMELEAF: View Resolver - implementation of Spring's ViewResolver interface -->
<!-- (we would not need this if our app was not web)                              -->
<bean id="viewResolver" class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine" />
    <property name="characterEncoding" value="UTF-8" />
</bean>

<import resource="daoContext.xml"/>
final WebContext ctx = new WebContext(request,response, request.getServletContext(), locale);

//.....

// Create the HTML body using Thymeleaf
final String htmlContent = this.templateEngine.process("email-inlineimage.html", ctx);
message.setText(htmlContent, true /* isHtml */);
org.thymeleaf.exceptions.TemplateInputException: Error resolving template "email-
inlineimage.html", template might not exist or might not be accessible by any of the
configured Template Resolvers
org.thymeleaf.TemplateRepository.getTemplate(TemplateRepository.java:245)
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1104)
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:924)
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:898)
com.podium.italia.service.EmailService.sendMailWithInlineImages(EmailService.java:112)

共有1个答案

漆雕疏珂
2023-03-14

我无法在servlet-context.xml中发现错误,因此问题一定隐藏在其他地方(您确定您的类路径模板文件就在mail/email-inlineimage.html中吗?)。我提供了作为整个项目的工作示例(因为在这里粘贴所有代码样本是过度的),您可以导入到STS并运行。

Spring麝香草邮寄

 类似资料:
  • 下面是index.html 它们在不同的文件夹中,但pathing应该工作,除非我只是错过了一些真正愚蠢的东西。

  • 我试图在我的PDF模板中包含一个字母头,如下所示: 片断/header.html template.html html位于app/src/main/resources/template/pdf/文件夹中。我必须包括css和图像文件与完整的路径(从项目的根),以使它们工作。我尝试包含完整路径的片段(如上),只包含片段/头,但每次都得到相同的错误。 我正在使用 Spring-Boot-Starter-

  • 我正在实现密码重置功能。为了显示具有这种功能的网页,我使用了百里香。但是当我调用我的简单的demo.html页面(见下面的代码)时,它抛出以下错误: 出现意外错误(类型 = 内部服务器错误,状态 = 500)。 异常解析文档:模板=“演示”,第 10 行 - 列 豆配置: 演示. html: 控制器: 我错过了什么?

  • 我创建了带有模块(Patients、Notes、Reports、Domain)的Maven多模块应用程序。问题出在使用MongoDB的模块Notes中。 我想运行GET addNote视图时遇到了问题-@GetMapping(“/note/add/{patientId}”)。GET注释列表视图工作正常,其他视图我也有。 控制台问题: 注意控制器: 病人注意: 注意: 注意存储库: 模板-注释/ad

  • 我需要使用Thymeleaf模板为不同地区发送电子邮件。 我的HTML中有下一部分 我有下一个密码 我有下一个豆子 我正在使用下一个依赖项 我在“资源”文件夹中有我需要的每种语言的资源包消息。如果你用ctrl左键从我的html中检查#{TEST},你可以看到它看到属性文件,所以IDEA可以解析它。 当我运行我的应用程序并尝试发送电子邮件时,我得到了下一个结果 ??TEST_de?? 对于其他语言,

  • 我的问题是我未能显示胸腺叶模板。我怀疑配置错误,但我似乎找不到它。提前感谢:) 波姆。xml: 模板在: Spring配置: 控制器: 我正在尝试访问:并获得404。 另一件事,有人能解释(或给文档一个链接)哪个servlet被用来“返回”模板html吗?是Spring调度员servlet吗? 好的,所以我忘记了,谢谢@Benjamin c.然而,添加它会产生: