自定义指令

自定义指令可以使用macro指令来定义

 

<#macro greet>
  <font>hello</font>
</#macro>

 

 

<#macro greet>和</#macro>之间的内容(称为宏定义体)当使用它作为指令时将会被执行。你可以在FTL标记中通过@代替#来使用自定义指令。使用变量名作为指令名。

 

<@greet></@greet>

<@greet/>

 

 

宏能做的事情还有很多,因为在<#macro ...>和</#macro>之间的东西是模版片段,也就是说它可以包含插值(${...})和FTL标签(如<#if ...>...</#if>)

 

注意:程序员通常将使用<@...>,这称为宏调用

 

  • 参数

<#macro greet person>
  <font>hello ${person}</font>
</#marco>

 

 

 

 

<@greet person="dh"/>

 

 

<font>hello dh</font>

 

 

自定义指令可以有多个参数。

 

  • 嵌套内容
<#macro border>
  <font>
  <#nested>
  </font>
</#macro>

 

 

<@border>test<@border>

 

 

<font>test<font>

 

 

nested指令也可以多次被调用

 

<#macro border>
 <#nested>
 <#nested>
</#marco>

<@border>test</@border>

test
test

 

 

嵌套的内容可以是任意有效的FTL,包含其他的用户自定义指令。

 

在嵌套的内容中,宏的局部变量是不可见的。

 

  • 宏和循环变量

自定义指令也可以有循环变量。

 

<#macro test>
  <#nested 1>
  <#nested 2>
</#macro>

<@test ; x>
  ${x}
</@test>

1
2

 用户自定义指令,使用“;”代替“as”

 

一个宏可以使用多个循环变量(变量的顺序是很重要的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值