7

这是我的 freemarker 模板的一部分:

${order.needByDate?if_exists?date}

我希望它按以下方式工作:

  • 如果needByDate为空,则什么也不写
  • 如果不为空,则写入日期部分

以上仅适用于第二种情况。实现这一目标的正确方法是什么?

4

3 回答 3

18

这也应该有效

${(order.needByDate?date)!}

括号是必须的

您还可以像这样添加默认值,例如“n/a”

${(order.needByDate?date)!"n/a"}
于 2014-05-02T02:45:58.460 回答
2

可能有一种更聪明的方法可以做到这一点,但以下应该可以完成这项工作。

<#if order.needByDate??>${order.needByDate?date}</#if>
于 2009-12-09T09:25:39.160 回答
1

考虑 null 和空字符串值的解决方案:

对于Freemarker 版本 2.3.23 或更新版本

${aDateField?has_content?then(aDateField?datetime?string["MM/dd/yyyy hh:mm:ss"],"")}

对于旧版本:

<#if aDateField?has_content>
${aDateField?datetime?string["MM/dd/yyyy hh:mm:ss"]}
</#if>

您可以在https://try.freemarker.apache.org/对其进行测试

于 2020-03-05T20:42:10.420 回答