在模板中可以定义三种类型的变量:
<#assign x = 1> <#-- 创建变量 x --> ${x} <#assign x = x + 3> <#-- 替换变量 x --> ${x}
1 4
<#assign x = "plain"> 1. ${x} <#-- 这里是普通变量 --> <@test/> 6. ${x} <#-- 普通变量的值没有被改变 --> <#list ["loop"] as x> 7. ${x} <#-- 现在循环变量隐藏了普通变量 --> <#assign x = "plain2"> <#-- 替换普通变量, 隐藏在这里不起作用--> 8. ${x} <#-- 它仍然隐藏普通变量 --> </#list> 9. ${x} <#-- 普通变量的新值 -->
<#macro test> 2. ${x} <#-- 这里我们仍然看到的是普通变量 --> <#local x = "local"> 3. ${x} <#-- 现在局部变量隐藏了它 --> <#list ["loop"] as x> 4. ${x} <#-- 现在循环变量隐藏了局部变量 --> </#list> 5. ${x} <#-- 现在又可以看到局部变量了 --> </#macro>
1. plain 2. plain 3. local 4. loop 5. local 6. plain 7. loop 8. loop 9. plain2注意到循环变量的设置是通过指令调用时创建的(本例中的 <list ...> 标签)。没有其他的方式去改变循环变量的值(也就是说你不能使用定义指令来改变它的值。)。从上面的示例来看,尽管也可以使用一个循环变量来隐藏另外一个。
<#assign user = "Joe Hider"> ${user} <#-- 打印: Joe Hider --> ${.globals.user} <#-- 打印: Big Joe -->
freemarker 模板中定义变量,布布扣,bubuko.com
原文:http://blog.csdn.net/coslay/article/details/37757525