Freemarker template not found
Solution 1
First of all, /WEB-INF/freemarker
would only work as a path from within WebApplicationContext
; otherwise Spring would attempt to resolve it as file system path rather than servlet context path. Is the excerpt you've posted above from the context being loaded by DispatcherServlet
?
Secondly, is there any reason why are you using configuration
directly instead of using Spring's ViewResolver
?
Finally, IOException
can mean many different things. Can you post a full stack trace?
Solution 2
I've just had the same kind of problem and, at the end, I decide to use the approach below:
Configuration configuration = new Configuration();
FileTemplateLoader templateLoader = new FileTemplateLoader(new File(YOUR_BASE_TEMPLATE_DIR));
configuration.setTemplateLoader(templateLoader);
freemarker.template.Template template = configuration.getTemplate(YOUR_TEMPLATE_NAME);
template.process(datamodel, writer);
brock
Updated on June 04, 2022Comments
-
brock about 2 years
I'm currently trying to get Freemarker to work with my application using Spring. No matter what I try I keep getting template not found. I am not sure if I have the configuration set up properly, but it never finds my template. Here is my spring bean config:
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/freemarker/"/> </bean>
Whenever I try to call getTemplate on the freemaker configuration it always sends back a template not found error. So if I do
configuration.getTemplate("testTemplate.ftl")
it always throws an IOException.
I'm not sure if anyone has an idea of what I'm doing wrong.
Thanks for all your help!