カスタムNetbeans Javaテンプレートを設定しています。私が${name?lower_case}
のような引数なしで組み込み関数を使用しているとき、私のテンプレートは正常に動作します。しかし、引数を指定して関数を使用すると、エラーが発生します(生成されたファイルは空です)。Freemarkerを使用したNetbeansテンプレート:引数付き組み込みが失敗する
いわゆる関数はremoving_ending
です。私はTest.javaを持っていると私はTest.javaに依存しているTestView.javaを生成したい:
<#assign type = ${name?remove_ending("View")}>
<#if package?? && package != "">
package ${package};
</#if>
import com.company.project.AbstractClass;
public class ${name} extends AbstractClass<${type}>{
}
私はいくつかのインポートを逃したが、機能が言われている場合、私は疑問に思いますが内蔵されているので、私はそれが利用可能であると仮定した。。
- どちら
を助けにはならなかった私は、成功
type = "${name?remove_ending("View")}"
(二重引用符)を有するか、View
単語の前後に引用符をエスケープせずに、テンプレートの上部に<#ftl>
を追加しようとしました編集&解決策
- Netbeansログは%USER_HOME%/ AppData/Roaming/NetBeans/{netbeans version} /var/log/messages.logにあります。
- FreeMarker Netbeans 8.2のどのバージョンが使用されていますかコマンド
remove_ending
は単に利用できませんでした。私は、name?substring(0, name?length - 4)
- テンプレートファイルが正しい構文は
<#assign type = name?remove_ending("View")>
ある%USER_HOME%\のAppData \ローミング\のNetBeans {NetBeansのバージョン} \ CONFIG \テンプレート
答えをいただきありがとうございます、ログヒントと正しい構文は救世主でした! Netbeansログのパスを強調表示するために私の質問を編集しました。 Netbeansは 'remove_ending'をサポートしていません。後でその点を掘り下げます... – Al1
2.3.xのバージョンは下位互換性があるので、FreeMarkerをアップグレードするだけです。 (まあ、彼らはフォークしていないと仮定して、彼らが持っているものを修正しました...) – ddekany