【问题标题】:#if in the head of a freemarker templat#if 在 freemarker 模板的头部
【发布时间】:2013-08-28 20:06:13
【问题描述】:

我是 FTL 新手,请原谅我对语言的无知。

我正在尝试使用以下代码提取 Google 调查脚本。

<%#if Page.ShowSurvey = 'true'%>
     <ui:include src="/includes/survey.jsp" /><%/#if%>

代码被放置在“head”标签中。当我去测试部署页面时,我收到一个服务器错误。

有人可以说明如何正确执行此操作。

谢谢。

【问题讨论】:

  • 这个语法从何而来?首先,FTL 使用&lt;#something ...&gt;,而不是&lt;%#something ...%&gt;。另外,调用 &lt;ui:include ...&gt; 只是 FTL 中的静态文本。

标签: boolean freemarker


【解决方案1】:

使用 Freemarker conditional syntax 和 @include_page 命令:

<#assign c=JspTaglibs["http://java.sun.com/jstl/core"] />

<@c:if test="Page.ShowSurvey eq 'true'">  
  <@c:import url="/includes/survey.jsp" />  
</@c:if>

【讨论】:

  • 在重新生成页面时,我收到了这个错误信息...... include 不是用户定义的指令。它是一个 freemarker.ext.dom.NodeListModel
  • 另外,代码的主要部分是打开或关闭的能力。在 XSD 中使用布尔方法。
  • @c.if 不是 FTL 条件语法,它是从 FTL 调用的 JSP JSTL 核心。 FTL 式的写作方式就是&lt;#if Page.ShowSurvey&gt;...&lt;/#if&gt;。好吧,假设 Page.ShowSurvey 是一个布尔值。另请注意,JspTaglibs 仅在您通过 freemarker.ext.servlet.FreemarkerServlet 扩展调用 FreeMarker 时才有效。
猜你喜欢
  • 2010-09-22
  • 2019-07-18
  • 2019-10-28
  • 1970-01-01
  • 2014-07-15
  • 2013-03-18
  • 2017-09-15
  • 2010-09-19
  • 1970-01-01
相关资源
最近更新 更多