美文网首页
FreeMarker 基本指令 if list assign i

FreeMarker 基本指令 if list assign i

作者: 左手气球右手书 | 来源:发表于2019-02-25 16:10 被阅读0次

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

    if 指令
    <#if condition>
        ...
    </#if>
    
    <#if condition>
    
    <#else>
        ...
    </#if>
    
    <#if condition>
        ...
    <#elseif condition>
        ...
    <#else>
        ...
    </#if>
    
    list 指令

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

    <#list misc.fruits as fruit>
    <ul>
        <li>${fruit}</li>
    </ul>
    </#list>
    

    等同

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

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

    <#list misc.fruits>
      <p>Fruits:
      <ul>
        <#items as fruit>
          <li>${fruit}<#sep> and</#sep>
        </#items>
      </ul>
    <#else>
      <p>We have no fruits.
    </#list>
    
    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 i

          本文链接:https://www.haomeiwen.com/subject/rnegyqtx.html