如何编写没有输入参数的 FreeMarker 模板函数
Posted
技术标签:
【中文标题】如何编写没有输入参数的 FreeMarker 模板函数【英文标题】:How to write a FreeMarker template function with no input parameters 【发布时间】:2021-10-23 17:54:30 【问题描述】:是否可以编写一个没有输入参数的FTL函数?
就像在 Java 中一样,您可以编写 void test()
,它不接受任何参数并且不返回任何内容。
我已阅读documentation。但是找不到关于这个特定主题的太多信息。
【问题讨论】:
【参考方案1】:不接受任何参数就像<#function f>...</#function>
。
不返回值也可以通过简单地不调用<#return someValue>
并到达</#function>
。但是,不返回任何内容的函数通常不是一个好主意。那么你想要的更有可能是一个宏(参见macro
指令)。在 FTL 中,函数是关于返回一个值,而宏是关于副作用(例如打印到输出,或发射火箭)。
【讨论】:
好的,谢谢.. 我已经按照你所说的定义了函数 f。并使用 $f() 调用。但它会引发以下错误“FreeMarker 模板错误:以下已评估为 null 或缺失:==> f()”。你能帮我做同样的事情吗? 对。在几乎所有情况下,您想要使用 FreeMarker 的返回值都会被激怒,因为没有。那么,如果你不需要返回值,为什么要使用函数而不是宏呢?以上是关于如何编写没有输入参数的 FreeMarker 模板函数的主要内容,如果未能解决你的问题,请参考以下文章