freemarker中变量范围,assign,以及用.globals,已经循环变量的讨论

时间:2022-11-02 20:15:46

1:正常获取模版中的assign声明的变量的值

freemarker中变量范围,assign,以及用.globals,已经循环变量的讨论

结果如下:

 

freemarker中变量范围,assign,以及用.globals,已经循环变量的讨论

 

2:当数据模型中存在与模版中变量同样的变量的时候,发生的冲突

freemarker中变量范围,assign,以及用.globals,已经循环变量的讨论

 

freemarker中变量范围,assign,以及用.globals,已经循环变量的讨论

 

输出结果:

freemarker中变量范围,assign,以及用.globals,已经循环变量的讨论

 

造成这样的原因是,变量的范围,在freemarker中,如果模版中与数据模型中存在同样的变量的时候,优先取模版assign声明的变量的值。

当数据模型中声明的变量与freemarkerassign声明的变量一致的时候,要获得数据模型中的变量的值,就需要用.globals

 

 

freemarker中变量范围,assign,以及用.globals,已经循环变量的讨论

这样就能正确获取数据模型中的值

 

而循环中也有一样的变量的时候,该变量只在循环内有效。