macro如何嵌套内容 macro参数定义 macro循环变量 java Freemarker中macro的宏可以有嵌套内容,<#nested>指令会执行宏调用指令开始和结束标记之间的模板片断。 macro嵌套内容例子 <#macro bodyheader> <h1><#nested></h1> </#macro> //在开始标记和结束标记中填充嵌套内容 <@bodyheader>Hellow World</@bodyheader> 运行结果: <h1><#nested></h1> <#nested>指令可以被多次调用,每次都会执行相同的内容。 如果你使用了一个定义体中没有<#nested>嵌套指令的宏,而开始标记和结束标记中嵌套的又有内容,FreeMarker不会出现任何错误,但内容不会输出. macro宏的局部变量并不满足可见嵌套 <#macro repeat count> <#local y = ‘test’> <#list 1.. count as x> ${y} ${count}/${x}:<#nested> </#list> </#macro> <@repeat count=3>${y!’N’} ${x!’N’} ${count!’N’}</@repeat> 运行结果: test 3/1: N N N test 3/2: N N N test 3/3: N N N 可以看到y、x和count都是局部变量,不能宏的嵌套内容中调用,只能作用域单一一个宏,这样可以避免混乱. macro参数定义 macro循环变量