我設置了一些自定義Netbeans Java模板。當我使用沒有參數的內置函數(如${name?lower_case}
)時,我的模板工作正常。但是,當我使用帶參數的函數時,最終會出現錯誤(生成的文件爲空)。具有Freemarker的Netbeans模板:內置參數失敗
所謂的功能是removing_ending
。我有一個Test.java和我想要生成TestView.java依賴於Test.java:
<#assign type = ${name?remove_ending("View")}>
<#if package?? && package != "">
package ${package};
</#if>
import com.company.project.AbstractClass;
public class ${name} extends AbstractClass<${type}>{
}
我不知道如果我錯過了一些進口但功能說內置所以我認爲它是可用的。
- 我試圖加入
<#ftl>
在模板的頂部沒有成功 - 有
type = "${name?remove_ending("View")}"
(雙引號)或周圍View
字逃逸行情沒有幫助既不
編輯&解決方案
- 在Windows上,Netbeans日誌位於%USER_HOME%/ AppData/Roaming/NetBeans/{netbeans version} /var/log/messages.log
- 我還沒有查找FreeMarker Netbeans 8.2正在使用的版本,但是命令
remove_ending
根本不可用。我用了一個name?substring(0, name?length - 4)
- 模板文件在%USER_HOME%\應用程序數據\漫遊\ {的NetBeans版本的NetBeans} \設置\模板
感謝您的答案,日誌提示和正確的語法是救世主!我編輯了我的問題以突出顯示Netbeans日誌路徑。太糟糕了,Netbeans不支持'remove_ending'。我會稍後再深入... – Al1
他們只需要升級FreeMarker,因爲2.3.x版本是向後兼容的。 (好吧,假設他們沒有分叉並修改它們的內容......) – ddekany