java - 参数可以为空的 Freemarker 函数

标签 java freemarker

我在 Freemarker 中创建了函数:

<#function formatDate anyDate>
    <#assign dateFormat = read_from_configuration() />
    <#if anyDate??>
        <#return anyDate?date(dateFormat) />
    <#else >
        <#return '' />
    </#if>
</#function>

我这样调用它:${formatDate(object.someDate)}

一切正常,直到 someDate 为空。在那种情况下,我得到异常:

Error executing macro: formatDate
required parameter: anyDate is not specified.

我该怎么做?如果参数值为 null,我希望该函数能够工作。

最佳答案

这是我所做的,这似乎在大多数情况下都有效:

默认值应该是一个空字符串,空值检查应该是?has_content

<#function someFunction optionalParam="" >
    <#if (optionalParam?has_content)>
        <#-- NOT NULL -->
    <#else>
        <#-- NULL -->
    </#if>
</#function>

关于java - 参数可以为空的 Freemarker 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4645784/

相关文章:

Java 初学者 - 我的方法有什么问题?

java - 从 Struts2 应用程序中的 FreeMarker 获取模板文本

themes - Keycloak - 主题中的当前语言代码

java - 有没有办法在 headless chrome中使用selenium上传文件?

java - Java/Perl 中的按位差异

java - 如何在 GWT 中测试生成器?

java - 错误:"error: duplicate value for resource ' attr/layout_anchorGravity',配置 ''。在android studio中?

spring - 表达式 springMacroRequestContext 未定义

java - freemarker可以用来输出自定义集合吗?

spring - 如何在 Freemarker 模板中访问 Spring 应用程序属性?