Variables, scopes

本章介绍了模板尝试访问变量时发生的情况以及变量的存储方式。

当您调用Template.process时,它将在内部创建一个Environment对象,该对象将一直使用直到process返回。该对象存储模板处理的运行时状态。除其他事项外,它使用assignmacrolocalglobal等指令存储由模板创建的变量。它永远不会尝试修改传递给process调用的数据模型对象,也不会创建或替换存储在配置中的共享变量。

当您尝试读取变量时,FreeMarker 将按此 Sequences 查找变量,并在找到具有正确名称的变量时停止:

实际上,从模板作者的角度来看,这 6 层仅是 4 层,因为从该角度来看,最后 3 层(使用global创建的变量,实际数据模型对象,共享变量)共同构成了全局变量集。

请注意,可以使用special variables从 FTL 中的特定层获取变量。

上一章 首页 下一章