找不到Freemarker模板,spring配置
Posted
技术标签:
【中文标题】找不到Freemarker模板,spring配置【英文标题】:Freemarker template not found, spring configuration 【发布时间】: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);
我的模板位于类路径下的文件夹中。
【问题讨论】:
【参考方案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 中受支持。以上是关于找不到Freemarker模板,spring配置的主要内容,如果未能解决你的问题,请参考以下文章
StrutsSpringJUnit4TestCase freemarker 结果“找不到名称的模板”