FreeMarker 模板中的 if-else

Posted

技术标签:

【中文标题】FreeMarker 模板中的 if-else【英文标题】:if-else in FreeMarker template 【发布时间】:2010-09-22 17:39:25 【问题描述】:

FreeMarker 模板支持具有以下语法的 if 语句

<#if hot> 
  It's hot.
</#if>  

我查看了文档,找不到任何对 if-else 语句的支持。当然,我可以通过以下方式获得相同的结果:

<#if hot> 
  It's hot.
</#if>  
<#if !hot> 
  It's not hot.
</#if>  

FreeMarker 中是否支持 if-else?

【问题讨论】:

【参考方案1】:

是的,你可以写:

<#if hot>
it's hot
<#else>
it's not
</#if>

如果你正在做很多 freemarker,我真的可以推荐 IntelliJ IDEA 8,它的 freemarker 支持真的很有帮助......

【讨论】:

【参考方案2】:

是的,sintaxis 是:

&lt;#if condition&gt;

...

&lt;#elseif condition2&gt;

...

&lt;#elseif condition3&gt;

...

&lt;#else&gt;

...

&lt;#/if&gt;

你可以找到Freemarker complete reference

如果您使用的是 Netbeans,则有 this plugin

【讨论】:

谢谢。也可以使用这种语法 [#if myVar?has_content && myVar==] ... [#elseif myVar?has_content && myVar==] ... [#else] ... [/#if ]【参考方案3】:

iberck 已经指出了文档。但这里是关于 if-else in FreeMarker 的确切文档。

【讨论】:

转到 iberk 指出的文档,在该页面上搜索 if 即可到达:freemarker.sourceforge.net/docs/ref_directive_if.html

以上是关于FreeMarker 模板中的 if-else的主要内容,如果未能解决你的问题,请参考以下文章

列出 Freemarker 模板中的所有变量

freemarker 模板和 smooks 中的注释

freemarker模板中的日期格式问题

无法访问 freemarker 模板中的会话属性

Freemarker 模板语言中的变量名

Netsuite / Freemarker - 访问电子邮件模板中的交易行级别数据