freemarker评估表达式但不显示值

时间:2014-04-30 11:21:18

标签: java freemarker

我将bean发送到freemarker页面,bean有一个object类型的字段:

${myBean.myObject.DDate}

当我使用这个表达式时,我确定自从我在myObject.getDDate()方法中放置一个断点以来调试器到达那里时所评估的值,问题是表达式字符串是显示为输出:

${myBean.myObject.DDate}

当我尝试正确显示${myBean.myObject} myObject.toSring()

1 个答案:

答案 0 :(得分:0)

${myBean.myObject.DDate}可能会抛出异常,如果myObject或DDate为null,那么为了安全起见先检查它,然后从中获取值,如下所示

<#if myBean.myObject.DDate}??>

// you need to get it as ?string(data_time_format_goes_here)

date:${myBean.myObject.DDate?string("yyyy-MM-dd")}
date:${myBean.myObject.DDate?string("yyyy-MM-dd hh:mm:ss")}

//FreeMarker also contains different built-ins for formatting dates
date:${myBean.myObject.DDate?time}
date:${myBean.myObject.DDate?date}
date:${myBean.myObject.DDate?datetime}

</#if>

FreeMarker还包含用于格式化日期http://freemarker.org/docs/ref_builtins_date.html

的不同内置插件

更新仅适用于最新版本的FreeMarker 2.3.17,即使您可以通过配置对象设置日期时间格式,也可以看到FTL端和服务器端的更改。

//config.setDateFormat("yyyy-MM-dd");
//config.setDateTimeFormat("yyyy-MM-dd HH:mm:ss.SSS")