У меня есть шаблон бесплатного маркера (index.ftl) с включенным в него включением (page1.ftl и page2.ftl):
this is the sample content on index.ftl
<#include "/pages/page1.ftl">
<#include "/pages/page2.ftl">
blablabla contents here
В моей весенней среде я расширил класс «AbstractTemplateView» ипереопределить метод "renderMergedTemplateModel", который вызывает doRender следующим образом:
protected void doRender(Map<String, Object> model, String viewName, HttpServletResponse response)
throws Exception {
logger.debug("start doRender");
try {
Configuration config = new Configuration();
String templatePath = templateService.getTemplateLocation();
config.setDirectoryForTemplateLoading(new File(templatePath));
Template template = config.getTemplate(viewName);
response.setContentType("text/html; charset=" + template.getEncoding());
PrintWriter out = response.getWriter();
template.process(model, out);
} catch (IOException e) {
String message = format("cannot render template <{0}> due to IOException: {1}", e.getMessage());
logger.error(message, e);
throw new NestedServletException(message, e);
}
}
У меня вопрос, как я могу отдельно установить каталог для включений для page1.ftl и page2.ftl?Является ли это возможным ?Метод setDirectoryForTemplateLoading устанавливает только каталог по умолчанию для шаблонов.Любые включения будут просматриваться относительно этого каталога.
Контекст этой проблемы в том, что я буду загружать include.Но если я не могу найти включения, он будет искать в другой каталог.
Пример FTL скажем (index.ftl):
FREEMARKER MAIN
<#include "page1.ftl">
<#include "page2.ftl">
Я попробовал мультизагрузчик, и он, похоже, работает на index.ftl.он попытается определить каталоги, которые я определил.но как я могу разрешить, скажем, как разные пути к каталогам для page1.ftl и page2.ftl?Является ли это возможным?Это дает мне ошибки, когда одного из включенных нет.