【问题标题】:How to write a FreeMarker template function with no input parameters如何编写没有输入参数的 FreeMarker 模板函数
【发布时间】:2021-10-23 17:54:30
【问题描述】:

是否可以编写一个没有输入参数的FTL函数

就像在 Java 中一样,您可以编写 void test() {},它不接受任何参数并且不返回任何内容。

我已阅读documentation。但是找不到关于这个特定主题的太多信息。

【问题讨论】:

    标签: java freemarker


    【解决方案1】:

    不接受任何参数就像<#function f>...</#function>

    不返回值也可以通过简单地不调用<#return someValue> 并到达</#function>。但是,不返回任何内容的函数通常不是一个好主意。那么你想要的更有可能是一个宏(参见macro 指令)。在 FTL 中,函数是关于返回一个值,而宏是关于副作用(例如打印到输出,或发射火箭)。

    【讨论】:

    • 好的,谢谢.. 我已经按照你所说的定义了函数 f。并使用 ${f()} 调用。但它会引发以下错误“FreeMarker 模板错误:以下已评估为 null 或缺失:==> f()”。你能帮我做同样的事情吗?
    • 对。在几乎所有情况下,您想要使用 FreeMarker 的返回值都会被激怒,因为没有。那么,如果你不需要返回值,为什么要使用函数而不是宏呢?
    猜你喜欢
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2015-05-06
    相关资源
    最近更新 更多