繁体   English   中英

Freemarker模板不加载

[英]Freemarker template do not load

我使用Spring + Freemarker作为发送电子邮件的模板,但是每次尝试发送邮件时,都会收到消息

freemarker.template.TemplateNotFoundException: Template not found for name "template.ftl".

我的代码如下:

 // Configuration - AppConfig.java
@Bean
public freemarker.template.Configuration freeMarkerConfigurationFactory() throws Exception{
    FreeMarkerConfigurationFactory fmcf = new FreeMarkerConfigurationFactory();
    fmcf.setTemplateLoaderPath("classpath:/META-INF/freemarker/");          
    fmcf.setPreferFileSystemAccess(false);
    fmcf.setDefaultEncoding("UTF-8");        
    return fmcf.createConfiguration();
}

邮件寄件人服务

    @Override
    @Async
    public void sendActivationMail(User user, HttpServletRequest request, String restorePasswordId) throws MailException, MessagingException, GetDataException {                 
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(user.getEmail()));             
        mimeMessage.setSubject(SOFTWARE_NAME + " - Activation");
        mimeMessage.setHeader("content-type", "text/html");    
        Map map = new HashMap();
        map.put("link", ServletUtility.getCompleteAdress(request)+"/auth/confirm/"+restorePasswordId);        
        try{
            mimeMessage.setContent(FreeMarkerTemplateUtils.processTemplateIntoString(freeMakerConfiguration.getTemplate("template.ftl"), map),
                    "text/html; charset=utf-8");
        }catch(Exception e){e.printStackTrace();}
        mailSender.send(mimeMessage);        
    }

这是我的目录树:

    src
    -main
    --java
    --- it.navium.secutor
    ----AppConfig.java
    --resources
    --webapp
    ---META-INF
    ----freemarker
    -----template.ftl

执行以下3个操作,您应该会很好:

  1. 将您的webapp目录重命名为WEB-INF
  2. 失去中间的META-INF目录,这意味着您的新树结构将如下所示:
 -WEB-INF --freemarker ---template.ftl 
  1. 在您的FreeMarker Bean定义中,将类路径字符串更改为: fmcf.setTemplateLoaderPath("classpath:/freemarker/");

弹簧靴套

如果您使用的是Spring Boot,则模板的位置应为resources/templates 看看参考文档部分模板引擎

....

Spring Boot包含对以下模板引擎的自动配置支持:

  • FreeMarker
  • Groovy
  • 胸腺
  • 速度(在1.4中弃用)
  • 胡子

.....

当您使用默认配置下的这些模板引擎之一时,模板将从> src / main / resources / templates自动获取

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM