带有 Freemarker 的 Netbeans 模板:内置参数失败
Netbeans template with Freemarker: built-in with argument fails
我正在设置一些自定义 Netbeans Java 模板。当我使用不带参数的内置函数时,例如 ${name?lower_case}
,我的模板工作正常。但是,当我使用带参数的函数时,我以错误告终(生成的文件为空)。
所谓的功能就是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 版本}/var/log/messages.log
- 我没有查找 Netbeans 8.2 使用的是哪个版本的 FreeMarker,但命令
remove_ending
根本不可用。我用了 name?substring(0, name?length - 4)
- 模板文件位于 %USER_HOME%\AppData\Roaming\NetBeans{netbeans 版本}\config\Templates
正确的语法是<#assign type = name?remove_ending("View")>
。那里不需要 ${}
。
此外,我不了解 NetBeans,但至少某处必须有一些日志告诉您错误是什么。 (它默默地给你空输出,没有任何错误弹出窗口,至少可以说这对用户来说不是很友好。可能值得在 NetBeans 上填写错误报告。)如果没有,你可以在 http://try.freemarker.org/ 上测试你的语法(尽管当然你不会有相同的数据模型,也可能不会有相同的 FreeMarker 版本,但在这种情况下,例如它会告诉你问题是什么。
我正在设置一些自定义 Netbeans Java 模板。当我使用不带参数的内置函数时,例如 ${name?lower_case}
,我的模板工作正常。但是,当我使用带参数的函数时,我以错误告终(生成的文件为空)。
所谓的功能就是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 版本}/var/log/messages.log
- 我没有查找 Netbeans 8.2 使用的是哪个版本的 FreeMarker,但命令
remove_ending
根本不可用。我用了name?substring(0, name?length - 4)
- 模板文件位于 %USER_HOME%\AppData\Roaming\NetBeans{netbeans 版本}\config\Templates
正确的语法是<#assign type = name?remove_ending("View")>
。那里不需要 ${}
。
此外,我不了解 NetBeans,但至少某处必须有一些日志告诉您错误是什么。 (它默默地给你空输出,没有任何错误弹出窗口,至少可以说这对用户来说不是很友好。可能值得在 NetBeans 上填写错误报告。)如果没有,你可以在 http://try.freemarker.org/ 上测试你的语法(尽管当然你不会有相同的数据模型,也可能不会有相同的 FreeMarker 版本,但在这种情况下,例如它会告诉你问题是什么。