java中Freemarker macro循环变量
java Freemarker中macro的循环变量是由像list这样的指令自己创建,它的作用范围只是他们的开始标记和结束标记之间。如果在一宏中,存在一个循环变量,并且循环变量的名字和宏的某参数相同,待循环结束之后并不会影响该宏参数的值。
1. macro中使用循环变量
<#macro repeat count> <#list 1..count as x> <#nested x, x/2, x==count> </#list> </#macro> <@repeat count=4 ; c, halfc, last> ${c}. ${halfc}<#if last> Last!</#if> </@repeat>
运行结果:
1. 0.5 2. 1 3. 1.5 4. 2 Last!
macro中nestted指令也可以有循环变量(循环变量的含义见下节),调用宏的时候在宏指令的参数后面依次列出循环变量的名字,这里count是宏的参数,c, halfc,last则为循环变量
2. macro中调用多次循环变量
<@repeat count=4 ; c, halfc, last> ${c}. ${halfc}<#if last> Last!</#if> </@repeat> <@repeat count=4 ; c, halfc> ${c}. ${halfc} </@repeat> <@repeat count=4> Just repeat it... </@repeat>
Freemarker中macro循环变量和用户定义指令开始标记指定的数目可以不同,调用时少指定循环变量,则多指定的值不可见,调用时多指定循环变量,多余的循环变量不会被创建。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。