【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">