在Freemarker中可以有私有宏吗?

在Freemarker中可以有私有宏吗?,freemarker,Freemarker,我有一个例子,在宏中有一些常见的功能。我将其编码为宏,但不希望在当前ftl之外可以访问(就像Java中的私有实例变量一样)。一种方法是将内部宏保存在一个单独的文件中,并且只将其包含在这个ftl中,但这似乎有点像黑客。有什么建议吗?FreeMarker中没有私有宏 如果您唯一关心的是名称空间污染(而不是安全性),那么您可能需要研究#import。如果您只是想传达不应从外部调用此宏的信息,则可以将其名称以开头;这对FreeMarker来说没有什么意义,但它是一种文档,除非你知道自己在做什么,否则你不

我有一个例子,在宏中有一些常见的功能。我将其编码为宏,但不希望在当前ftl之外可以访问(就像Java中的私有实例变量一样)。一种方法是将内部宏保存在一个单独的文件中,并且只将其包含在这个ftl中,但这似乎有点像黑客。有什么建议吗?

FreeMarker中没有私有宏


如果您唯一关心的是名称空间污染(而不是安全性),那么您可能需要研究
#import
。如果您只是想传达不应从外部调用此宏的信息,则可以将其名称以
开头;这对FreeMarker来说没有什么意义,但它是一种文档,除非你知道自己在做什么,否则你不应该打电话给它。

谢谢你提供了信息丰富的答案。在freemarker中是否有其他方法可以获得与私有方法等价的方法?(也许是宏以外的构造?)也许我应该更好地理解你为什么需要这个。您所说的令人困惑的事情之一是“一种方法是将内部宏保存在一个单独的文件中,并且只将其包含在这个ftl中”。这有什么帮助呢?我刚刚开始使用Freemarker,并试图在我的模板中实现一些模块化。我试图应用一些面向对象的原则。这就是目的。