【问题标题】:Freemarker template not found, spring configuration找不到Freemarker模板,spring配置
【发布时间】:2014-05-21 07:53:15
【问题描述】:

我正在尝试使用 spring 使用 freemarker 模板,我的 spring 配置如下所示,

<bean id="freemarkerConf" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean" >
    <!-- Turn this off to always load via SpringTemplateLoader -->
    <property name="preferFileSystemAccess" value="false"></property>
    <property name="templateLoaderPath" value="classpath:/WEB-INF/freemarker/alertmail/"></property>
</bean>

但由于某种原因,我不断收到以下异常,

java.io.FileNotFoundException: Template mainMail.ftl not found.
at freemarker.template.Configuration.getTemplate(Configuration.java:489)
at freemarker.template.Configuration.getTemplate(Configuration.java:466)

我的代码如下,

mailBody = FreeMarkerTemplateUtils.processTemplateIntoString(freemarkerConf.getTemplate("mainMail.ftl","UTF-8"), model);

我的模板位于类路径下的文件夹中。

【问题讨论】:

    标签: spring freemarker


    【解决方案1】:

    确保文件位于:src/freemarker/alermail 然后

        <bean id="freemarkerConf" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean" >
            <!-- Turn this off to always load via SpringTemplateLoader -->
            <property name="preferFileSystemAccess" value="false"></property>
            <property name="templateLoaderPath" value="classpath:/freemarker/alertmail/"></property>
        </bean>
    

    【讨论】:

    • 谢谢,但还是同样的问题
    • 这也不起作用,所以将我的文件移动到 src/freemarker 并将类路径更改为类路径:/。使用“freemarker/alertmail/mailBody.ftl”加载我的文件并且它工作。还是谢谢!
    • 哈哈,我做了同样的改变,它奏效了,并编辑了答案。我使用的是 FreeMarkerConfigurer,但它在 web env 中受支持。
    猜你喜欢
    • 2011-07-28
    • 2010-12-20
    • 2016-08-10
    • 2015-12-30
    • 2015-12-16
    • 2015-09-04
    • 2021-09-04
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多