2017-10-17 14 views
0

私はこのような状況があります。私はフォルダaを持っていて、その中にはa.ftlとフォルダbがあります。フォルダb内にはb.ftlがあります。 in b.ftl私は[#macro macroName param1]...[/#macro]ファイルからマクロを呼び出す方法a?私はintellijのアイデアの警告を持っています。私は、このリンクhttps://intellij-support.jetbrains.com/hc/en-us/community/posts/206196939-Getting-Intellij-to-pick-up-Freemarker-macrosを見たので、私はa.ftlの先頭に別ファイルからfreemarkerマクロを呼び出してください

[#-- @implicitly included --] 
[#-- @ftlroot "" --] 

を配置しようとしたが、それは動作しません。 freemarkerのドキュメントhttp://freemarker.org/docs/ref_directive_macro.htmlを探していましたが、同じファイルからマクロを呼び出すだけの例があります。

答えて

2

<#import "/b/b.ftl" as b>(最後のbは任意の変数名になります)を使用して、<@b.macroName ...>のようなマクロを呼び出すことができます。一般的に必要とされるマクロ/関数/値を他のテンプレートの#import -ededテンプレートに入れるのが一般的なベストプラクティスです。

<#include "/b/b.ftl">/a/a.ftlに入力してから、<@macroName ...>(名前空間の接頭辞はb.など)を使用することもできます。 #includeの一般的な使用例は、#include -dのたびに、a.ftl全体を実行するので、共通の出力を印刷します。 a.ftlには、マクロ定義と関係のないそのような割り当てが含まれている場合。

インポートとインクルードは、一番上のテンプレートで自動的に実行することもできます。そのためには、auto_importsConfiguration.setAutoImports)とauto_includesConfiguration.setAutoIncludes)の構成設定を参照してください。

も参照してください:私は、インポートとソリューションを使用していたhttp://freemarker.org/docs/dgui_misc_namespace.html

+0

、助けてくれてありがとう。 – Spasoje

関連する問題