【发布时间】:2015-07-15 12:28:39
【问题描述】:
我是 freemarker 的新手,所以我确定我错过了什么!!
我正在使用 tomcat 和 java servlet 构建一个网站,所以我需要 freemarker 来构建 html 代码。 我有时想在代码中包含一个模板到另一个模板中
模板1.ftl
<section>
<header class='title'>Wrapper</header>
<#include dynamicOptionalContent>
<section>this is my static content</section>
</section>
template2.ftl
<section>
<p>this section sometimes have to be shown sometimes not</p>
</section>
如果我使用代码中的数据模型处理模板1,一切正常
SimpleHash myData=new SimpleHash();
myData.put("dynamicOptionalContent","path/to/ftl/template2.ftl");
但是如果我不提供任何 dynamicOptionalContent 一切都会失败,因为 freemarker 想要一个有效的模板路径,更一般地说,它会寻找一个条目 dynamicOptionalContent .. .但有时我不想提供它!
有什么想法吗?
实际上我已经找到了一个选项可以在标签 上使用,就像代码中一样
<#include dynamicOptionaContent ignore-missing=true>
但它仍然失败并引发异常
请帮忙!!!!!!!
【问题讨论】:
-
你可以试试
<#if dynamicOptionalContent?has_content><#include .vars['dynamicOptionalContent']></#if>吗? -
@sev 不需要
.vars。毕竟,变量总是在运行时解析。
标签: java servlets freemarker template-engine