我在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,我希望函数能够工作.
Sco*_*pey 12
这就是我所做的,这似乎适用于大多数场景:
默认值应为空字符串,null检查应为?has_content.
<#function someFunction optionalParam="" >
<#if (optionalParam?has_content)>
<#-- NOT NULL -->
<#else>
<#-- NULL -->
</#if>
</#function>
Run Code Online (Sandbox Code Playgroud)
最后,我这样做是这样的:
<#function formatDate anyDate ='notSet'>
<#assign dateFormat = read_from_configuration()/>
<#if anyDate?is_date>
<#return anyDate?string(dateFormat)/>
<#else>
<#return''/>
</#if>
</#function>
| 归档时间: |
|
| 查看次数: |
11898 次 |
| 最近记录: |