Java と Freemarker を介していくつかのコード/スクリプト (特に Perl スクリプト) を生成するプロジェクトに取り組んでいます。今のところ動作していますが、Freemarker でデフォルトの変数区切り文字 ($) を変更する方法があるかどうか疑問に思っていましたか?
または、Perl スクリプトの生成により適した変数区切り文字を使用する別の Java テンプレート エンジンはありますか?
Java と Freemarker を介していくつかのコード/スクリプト (特に Perl スクリプト) を生成するプロジェクトに取り組んでいます。今のところ動作していますが、Freemarker でデフォルトの変数区切り文字 ($) を変更する方法があるかどうか疑問に思っていましたか?
または、Perl スクリプトの生成により適した変数区切り文字を使用する別の Java テンプレート エンジンはありますか?
このような機能は、山括弧構文と角括弧構文のどちらかを選択する機能と同じ場所にあると考えられます。
http://freemarker.org/docs/api/freemarker/template/Configuration.html
補間構文の変更については何もわかりません。
だから私はそれを強く信じています:いいえ、あなたはできません。
変数の区切り文字は$fooではなく、${foo}です。
私はperlを知りませんが、$で何かを生成するには:
$${foo} -> $FOO
<#noparse>${</#noparse>${foo}} -> ${FOO}
とてもかっこいい :-)
最良の方法は、 escape / noescapeディレクティブのように、perlを補間に入れるマクロを作成することだと思います。
テンプレート言語FTL.jjの文法は、内挿される変数 (an ) の${
andをハードコーディングするため、上記のようにファイルを前処理することが最善のオプションである可能性があります。}
FM_EXPRESSION
%{x}
FTL 補間として使用し、そのままにしておくと${x}
、この Perl ワンライナーが機能します。
% perl -spi.bak -e "s/\\$/\<#noparse\>\\$\<\/#noparse\>/g,s/\%\{/\\$\{/g" file
前:
%{var}=${value}
後:
${var}=<#noparse>$</#noparse>{value}