在JSP页面上使用displaytag库的表中,如下所示:
<display:table id="foo" name="request.foo">
...
<display:column
title="Some date"
format="${empty request.theDates[foo_rowNum-1]?'':'{0,date,dd.MM.yyyy HH:mm}'}"
value="${request.theDates[foo_rowNum-1]}" />
...
</display:table>
问题是, format 属性仅评估一次。也就是说,相同的计算值用于所有行,而不是依赖于数据。
因此,如果第一个日期是 null ,则空格式字符串(表示“使用默认格式”)将用于所有行。如果第一个日期不是 null ,则指定的格式将用于所有行。这是一个问题,因为如果某行中的日期是 null ,格式化程序将记录一个ERROR。因此,日志将填充错误,实际上并非如此(模糊真实错误)。
所以问题是:如何为日期列指定一个自定义格式,它将起作用并且不会记录空( null )日期的错误?使用装饰师?也许是一些JSP函数?