簡體   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