java - 解析 WEB-INF 中的 Thymeleaf 模板

标签 java spring spring-mvc thymeleaf

我想使用 thymeleaf 发送电子邮件来呈现电子邮件消息。这是我在 Spring 4 applicationContext.xml 中的配置:

<bean id="thymeleafMailEngine" class="org.thymeleaf.TemplateEngine">
    <property name="templateResolver" ref="thymeleafMailResolver" />
</bean>
<bean id="thymeleafMailResolver" class="org.thymeleaf.templateresolver.FileTemplateResolver">
    <property name="templateMode" value="XHTML" />
    <property name="prefix" value="src/main/webapp/WEB-INF/templates/" />
    <property name="characterEncoding" value="UTF-8" />
    <property name="cacheable" value="false"/>
</bean>
<bean id="websiteMailSender" class="com.mycompany.service.MailSenderWithAttachmentSupport">
    <property name="thymeleafEngine" ref="thymeleafMailEngine" />
    <property name="thymeleafResolver" ref="thymeleafMailResolver" />
</bean>

要发送电子邮件,我使用:

        MimeMessage msg=mailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(msg, true, "UTF-8");
            //...
            final Context ctx = new Context();
            ctx.setVariables(model); //model is a Map<String,Object>
            helper.setText(thymeleafEngine.process(template, ctx)); //line 89
        } catch(MessagingException me) {
            log.error("Cannot send email message");
        }

它生成此异常:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "my_template.html", template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.TemplateRepository.getTemplate(TemplateRepository.java:246) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1104) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:924) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:898) at com.mycompany.service.MailSenderWithAttachmentSupport.send(MailSenderWithAttachmentSupport.java:89)

最佳答案

我刚刚找到了解决方案:

<bean id="thymeleafMailResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
    <property name="templateMode" value="XHTML" />
    <property name="prefix" value="/WEB-INF/templates/" />
    <property name="characterEncoding" value="UTF-8" />
    <property name="cacheable" value="false"/>
</bean>

关于java - 解析 WEB-INF 中的 Thymeleaf 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30475286/

相关文章:

Macbook Bootcamp Windows 上的 Java Html 呈现器

java - 不满意链接错误 : Can't find dependent libraries

java - 如何访问soap头信息?

java - Spring security 有时会在成功登录后重定向到默认页面而不是预登录页面

java - 表单数据未与 Spring Controller 注释绑定(bind),提交后获取新对象

javascript - VertX Webserver 静态内容 webroot

java - 部署后无法访问 Google App Engine 中的 Spring Boot 应用程序

google-app-engine - 谷歌应用程序引擎Restful Web服务身份验证

mysql - JPA规范基于外键的多重连接

java - 搜索无序列表而不将其转换为数组