0
我有一個情況,我在宏中有一些共同的功能。我將它編寫爲宏,但不希望在當前ftl之外訪問它(就像Java中的私有實例變量一樣)。一種方法是將內部宏保存在一個單獨的文件中,並僅將其包含在此ftl中,但這似乎有些破綻。有什麼建議麼?Freemarker中可以有私有宏嗎?
我有一個情況,我在宏中有一些共同的功能。我將它編寫爲宏,但不希望在當前ftl之外訪問它(就像Java中的私有實例變量一樣)。一種方法是將內部宏保存在一個單獨的文件中,並僅將其包含在此ftl中,但這似乎有些破綻。有什麼建議麼?Freemarker中可以有私有宏嗎?
FreeMarker中沒有私有宏。
如果您唯一關心的是命名空間污染(而不是安全性),您可能需要查看#import
。如果你只是想傳達這個宏不應該從外部調用,你可以用_
開始它的名字;這對FreeMarker來說沒有任何意義,但是除非你知道你在做什麼,否則它是你不應該調用的文檔。
感謝您提供豐富的答案。 freemarker有沒有另外一種方法可以獲得相應的私有方法? (也許有些構造不是宏?) –
也許我應該更好地理解你爲什麼需要這個。你所說的一個令人困惑的事情是「做到這一點的一種方法是將內部宏保存在一個單獨的文件中,並且只包含在這個ftl中」。這有什麼幫助? – ddekany
我剛開始使用Freemarker,並試圖在我的模板中獲得一些模塊化。我試圖應用一些面向對象的原則。這是意圖。 –