Freemarker中的可以约会的日期

时间:2009-12-09 09:22:26

标签: java freemarker

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

${order.needByDate?if_exists?date}

我希望它能够如下工作:

  • 如果needByDate为空,则不写任何内容
  • 如果它不为null,则写入日期部分

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

3 个答案:

答案 0 :(得分:12)

这也应该有用

${(order.needByDate?date)!}

括号是必要的

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

${(order.needByDate?date)!"n/a"}

答案 1 :(得分:2)

可能有一种更聪明的方法可以做到这一点,但以下情况应该可以胜任。

<#if order.needByDate??>${order.needByDate?date}</#if>

答案 2 :(得分:0)

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

对于Freemarker version 2.3.23 or newer

${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/

进行测试