天天看点

freemarker 模板中定义变量

在模板中能够定义三种类型的变量:

简单变量:它能从模板中的不论什么位置来訪问,或者从使用 include 指令引入的模板訪问。

能够使用 assign 或 macro 指令来创建或替换这些变量。

局部变量:它们仅仅能被设置在宏定义体内,并且仅仅在宏内可见。一个局部变量的生存周期仅仅是宏的调用过程。能够使用 local 指令在宏定义体内创建或替换局部变量。

循环变量:循环变量是由指令(如 list )自己主动创建的,并且它们仅仅在指令的開始和结束标记内有效。宏的參数是局部变量而不是循环变量。

演示样例:使用 assign 创建和替换变量

局部变量也会隐藏(不是覆盖)同名的简单变量。循环变量也会隐藏(不是覆盖)同名的局部变量和简单变量。比如:

注意到循环变量的设置是通过指令调用时创建的(本例中的 <list ...> 标签)。

没有其它的方式去改变循环变量的值(也就是说你不能使用定义指令来改变它的值。

)。

从上面的演示样例来看,虽然也能够使用一个循环变量来隐藏另外一个。

有时会发生一个变量隐藏数据模型中的同名变量,可是如果想訪问数据模型中的变量,就能够使用特殊变量 globals 。比如,如果我们在数据模型中有一个名为 user ,值为”BigJoe”的变量。