FreeMarker自定义指令

摘要: FreeMarker自定义指令就像struts2的set标签,为了好理解,也可以认为是定义一个方法,就像js的function.在freemarker中的这个标签就是macro。在定义一个指令的时候,可以指定参数,当然也可以不指定,这里要注意了,我这里只贴出模板文件及输出结果,freemarker的工具类请参照FreeMarker入门教程,其实也没有什么改变,直接拿过来用即可

FreeMarker自定义指令就像struts2的set标签,为了好理解,也可以认为是定义一个方法,就像js的function.在freemarker中的这个标签就是macro。在定义一个指令的时候,可以指定参数,当然也可以不指定,这里要注意了,我这里只贴出模板文件及输出结果,freemarker的工具类请参照FreeMarker入门教程,其实也没有什么改变,直接拿过来用即可


自定义一个不带参数的指令

<#macro hello>

helloworld

</#macro>

<@hello/>

helloworld

自定义一个带参数的指令

如果指令带有参数,在用这个指令的时候,参数名是不能省略的,要不会出异常

<#--对于hello这个自定义指令而言,hello后的都是参数,有两个参数一个是num一个是ok-->

<#macro hellonumok>

<#list 1..numas n>

<h1>Hello${ok}${n}</h1>

</#list>

</#macro>

<#--<@hello/>会报错,因为hello有两个参数,在定义参数的值的时候参数名不能省略-->

<@hellonum=3ok="World"/>

<h1>HelloWorld1</h1>

<h1>HelloWorld2</h1>

<h1>HelloWorld3</h1>

自定义指令的同时给参数定义了初始值,此时在调用该指令就可以省略参数,如果省略会使用默认值

<#--repeat的两个参数定义了初始值,此时在调用该指令就可以省略参数,如果省略会使用默认值-->

<#macro repeatnum=10ok="World">

<#list 1..numas n>

<h1>Hello${ok}${n}</h1>

</#list>

</#macro>

<@repeat/>

<h1>HelloWorld1</h1>

<h1>HelloWorld2</h1>

nested标签会输出指令中的内容

<#macro test>

<#--nested会输出指令中的内容-->

<#nested 12 33/>

<#nested 11 22/>

<#nested 22 33/>

</#macro>

<@test;x,y>

<h1>你好啊--${x}--${y}</h1>

</@test>

<h1>你好啊--12--33</h1>

<h1>你好啊--11--22</h1>

<h1>你好啊--22--33</h1>


本文链接:FreeMarker自定义指令,本文由huangyineng原创,转载请注明出处


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值