【FreeMarker】04 指令

1、Assign自定义变量质量

<#assign  var = 100 >
${var}

定义多个变量

<#assign  var2 = "string" arr = ["元素1", "元素2", "元素3", "元素4", "元素5"] >
${var2}
<br>
<#list arr as a>
    ${a} - 
</#list>

2、判断逻辑

<h3>分支判断指令</h3>
<#assign var3 = false>
<#if var3 >
    <p>为TRUE才会显示的内容</p>
</#if>

<#if !var3 >
    <p>为TRUE才会显示的内容222</p>
</#if>

多分支:

<#assign var4 = 100>
<#if var4 != 100>
    <#-- OPT1 -->
    <#elseif var4 == 90>
        <#-- OPT2 -->
    <#elseif var4 == 80>
        <#-- OPT3 -->
    <#else>
        <#-- OPT4 -->
</#if>

判空处理:

<#-- 还支持判空简写处理 -->
<#if var5?? > <#-- 对不存在的var5进行空判断 有则执行,无则不执行 -->
    
</#if>

然后list还支持else判断,如果队列存在,但是没有元素,就会执行else的内容

<#list map?values as value >
    <p>值 -> ${value}</p>
    <#else >
    <#-- 如果没有元素,执行ELSE的内容 -->
</#list>

 

自定义指令Marco:

<#macro timesTable> <#-- 乘法表 -->
    <#list 1..9 as i>
        <#list 1..i as j>
            ${j} * ${i} = ${i*j}  
        </#list>
        <br>
    </#list>
</#macro>

<@timesTable />

<hr>

<#macro timesTable2 param> <#-- 乘法表2  可以注入参数动态渲染-->
    <#list 1..param as i>
        <#list 1..i as j>
            ${j} * ${i} = ${i*j}  
        </#list>
        <br>
    </#list>
</#macro>

文本嵌入指令Nested:

自定义指令使用时插入文本字符,需要使用Nested指令实现

<#macro text >
    <p>
        这是写好的指令文本1
        <#nested >
        这是写好的指令文本2
    </p>
</#macro>

<@text></@text>
<@text>这是插入的文本</@text>

  

Import导入指令:

<#import "fmt-04.ftl" as fmt04> <#-- 导入模板文件,并且别名 -->

<@fmt04.text>调用成功</@fmt04.text> <#-- 调用该模板文件内的自定义指令 -->

或者使用Include导入HTML页面:

<#include "Hello.html">

 

posted @ 2020-09-21 21:58  emdzz  阅读(135)  评论(0)    收藏  举报