FreeMarker 基本指令 if list assign include

FTL 标签 (FreeMarker Template Language, FreeMarker模板的语言标签),也被成为指令。

if 指令
<#if condition>
    ...

<#if condition>

<#else>
    ...

<#if condition>
    ...
<#elseif condition>
    ...
<#else>
    ...

list 指令

list指令的一般格式为: <#list sequence as loopVariable>repeatThis
repeatThis 部分将会在给定的 sequence 遍历时在每一项中重复, 从第一项开始,一个接着一个。
在所有的重复中, loopVariable 将持有当前遍历项的值。 这个变量仅存在于 <#list ...> 和 标签内。

<#list misc.fruits as fruit>
  • ${fruit}

等同

<#list misc.fruits>
    <#item fruit>
  • ${fruit}
ist指令中<#sep>,存在下一项时执行,即遍历到数组的最后一项时将不会执行。

以上指令(list, items, sep, else)可以联合起来使用:

<#list misc.fruits>
  

Fruits:

    <#items as fruit>
  • ${fruit}<#sep> and
<#else>

We have no fruits.

assign 指令

参考文档

assign 指令可以 创建一个新的变量, 或者替换一个已经存在的变量。注意仅仅顶级变量可以被创建/替换 (也就是说你不能创建/替换 some_hash.subvar)。
assign 指令在命名空间中创建变量。通常它在当前的命名空间 (也就是和标签所在模板关联的命名空间)中创建变量。但如果你是用了 in namespacehash, 那么你可以用另外一个 命名空间 来创建/替换变量。

语法:<#assign name1=value1 name2=value2 ... nameN=valueN>

变量得创建可以是一个简写的赋值操作符(从 FreeMarker 2.3.23 版本开始): ++,--, +=,-=, *=,/= 或 %=。比如: <#assign x++> 和 <#assign x = x + 1> 是一样的,并且 <#assign x += 2> 和 <#assign x = x + 2> 是相同的。 请注意, ++ 通常意味着算术加法 (对于非数字将会失败),不像 + 或 += 可以进行字符连接等重载操作。

<#assign seq = ["foo", "bar", "baz"]  x++ >
include 指令

include 指令在模板中插入其他文件的内容

<#include "/copyright_footer.html">

你可能感兴趣的:(FreeMarker 基本指令 if list assign include)