注意:在实际开发中使用最多的是list if标签    

比如:[#if bean.state?? && 1 == bean.state ]
   <a class="acceptBtn"  data-info="${(bean.id)!}-${(bean.state)!}"  ><span class="blue">下架</span></a><span class="fc9a9a9a">上架</span>
   [#else]
    <span class="fc9a9a9a">下架</span><a class="acceptBtn"  data-info="${(bean.id)!}-${(bean.state)!}"><span class="blue">上架</span></a>
  [/#if]

其中的bean一个对象state是bean中的一个属性,“??”表示bean.state的值是否存在,1 == bean.state判断值是否为1,这个类似于java的if else,同样freemarker也有elseif标签


[#list pagination.list as bean]
  <ul class="list_content_2">
 <li class="pt5">${(bean.startTime?string('yyyy-MM-dd'))!}</li>
  <li class="pt5">${(bean.endTime?string('yyyy-MM-dd'))!}</li>
  <li class="pt5">
  [#if bean.state?? && 2 == bean.state ]已还车
 [#elseif bean.state?? && 1 == bean.state ]
  正常使用
  [#else]
  <span class="fc9a9a9a">未启用</span>
  [/#if]
   </li>
   <li class="pt5">${bean.note!}</li>
 <div class="clearfix"></div>
 </ul>
 [/#list]

这里使用的是list标签pagination.list表示分页对象中的一个集合,pagination.list as bean表示将这个集合中的一个对象作为bean(名称可以任意去),这类似于java遍历集合for(Object bean:pagination.list){}

使用 ​FTL ​标签来调用 ​directives 指令,比如调用 ​list ​指令。 在语法上我们使用了两个标
签: ​<#list animals as being>​和​</#list>​
标签分为两种:
 ​开始标签: ​<#​directivename parametes>
 ​结束标签: ​</#​directivename>
除了标签以​#​开头外,其他都和 ​HTML​, ​XML ​的语法很相似。 如果标签没有嵌套内容(在
开 始 标 签 和 结 束 标 签 之 内 的 内 容 ) , 那 么 可 以 只 使 用 开 始 标 签 。 例 如 ​<#if​ something>​...</#if> ​,但是 ​FreeMarker ​知道​<#include ​something>
include ​指令没有可嵌套的内容。
parameters 的格式由 ​directivename 来决定。
事实上,指令有两种类型:预定义指令和用户自定义指令。对于用户自定义的指令使用
@​来代替​#​,比如​<@mydirective ​parameters>​...</@mydirective>​。更深
的 区 别 在 于 如 果 指 令 没 有 嵌 套 内 容 , 那 么 必 须 这 么 使 用 ​<@mydirective
parameters />​, 这和 ​XML ​语法很相似(例如​<img ​... />​) ​.​但是用户自定义指令
是后面要讨论的高级主题。
像 ​HTML ​标签一样, ​FTL ​标签必须正确的嵌套使用。下面这段示例代码就是错的,因为
if ​指令在 ​list ​指令嵌套内容的内外都有:
注意一下 ​FreeMarker ​仅仅关心 ​FTL ​标签的嵌套而不关心 ​HTML ​标签的嵌套,它只会把
HTML ​看做是相同的文本,不会来解释 ​HTML​
如果你尝试使用一个不存在的指令(比如你输错了指令的名称), ​FreeMarker ​就会拒绝
<h1>Welcome ${user <#-- The name of user -->}!</h1>​[BR]<p>We have these animals:​[BR]<ul>​[BR]<#list <#-- some comment... --> animals as <#-- again... -->
being>​[BR]...<ul>
<#list animals as being><li>${being.name} for ${being.price} Euros
<#if user == "Big Joe">(except for you)
</#list> <#-- WRONG! The "if" has to be closed first. -->
</#if></ul>
执行模板,同时抛出错误信息。
FreeMarker ​会忽略 ​FTL ​标签中的多余空白标记,所以你也可以这么来写代码:
当然,也不能在​<​, ​</​和指令名中间插入空白标记。
指令列表和详细介绍可以参考指令参考部分(但是我建议先看表达式章节,后面将会介绍)。
注意:
通过配置,​FreeMarker ​可以在 ​FTL ​标签和 ​FTL ​注释中,使用​[​和​]​来代替​<​和​>​,就像​[#if
user == "Big Joe"]​...[/#if]​。要获取更多信息,请参考:第四章的其它​/​替换
(方括号)语法部分。
注意:
通过配置, ​FreeMarker ​可以不需要​#​来理解预定义指令(比如​<if user == "Big
Joe">...</if>​)。而我们不建议这样来使用。