GSP- formatDate标记问题处理空日期

时间:2014-10-31 03:44:53

标签: grails-2.0 gsp

我使用标签从Controller到GSP的DATE字段集合 - 但有时会出现空白和无效数据,并且会引发错误。我该如何处理这个NULL指针?

代码< g:formatDate format =" yyyy-MM-dd" date =" $ {objectInstance?.expiryDate}" />

我也尝试过使用它 - $ {objectInstance?.expiryDate?.format(" MM / dd / yyyy")},但没有运气。谢谢预期。

2 个答案:

答案 0 :(得分:1)

维涅什,

以下是一些可能的解决方案(假设您可以在日期为空时显示任何内容或某些备用文本):

${try{objectInstance?.expiryDate?.format('MM/dd/yyyy')}catch(e){''}}

或者,您可以使用与上面相同的代码在控制器(我的首选方法)中处理此问题而不将$ {}包装起来并将其设置为模型属性。

[expiryDateFormatted: try{objectInstance?.expiryDate?.format('MM/dd/yyyy')}catch(e){''}]

尝试一下,看看它们是否适合你。

与Vignesh交谈后发现,expiryDate实际上是一个字符串而不是日期。以下是一个适用于字符串值的解决方案。

${try{new Date().parse('yyyy-MM-dd', objectInstance?.expiryDate).format('MM/dd/yyyy')}catch(e){''}}

答案 1 :(得分:0)

在GSP中,您还可以通过以下方式使用formatDate:

${ g.formatDate(format:'yyyy-MM-dd', date: objectInstance?.expiryDate ) }

objectInstance?.expiryDatenull时,它将仅呈现空白而不返回错误