Struts2 如何使用display table标记对具有空值的日期进行排序

Struts2 如何使用display table标记对具有空值的日期进行排序,struts2,displaytag,Struts2,Displaytag,我有一个日期列表,其中一些可能包含空值。现在我想使用display table标记来显示它,并使其可排序,如果日期显示为空,则我将其更改为字符串“NA”。我该怎么做? 这是我的专栏(我正在使用struts 2) 抱歉,我之前在iphone上消磨时间 注意。这只是基于查看displaytag文档,但是您是否尝试过编写自定义比较器 public class CustomDateComparator implements Comparator<Date> { public int

我有一个日期列表,其中一些可能包含空值。现在我想使用display table标记来显示它,并使其可排序,如果日期显示为空,则我将其更改为字符串“NA”。我该怎么做? 这是我的专栏(我正在使用struts 2)


抱歉,我之前在iphone上消磨时间

注意。这只是基于查看displaytag文档,但是您是否尝试过编写自定义比较器

public class CustomDateComparator implements Comparator<Date> {
    public int compare(Date date1, Date date2) {
        if (date1 == null) {
            return -1;
        }

        if (date2 == null) {
            return 1;
        }

        return date1.compareTo(date2);
    }
}
公共类CustomDateComparator实现Comparator{
公共整数比较(日期1,日期2){
如果(date1==null){
返回-1;
}
如果(date2==null){
返回1;
}
返回日期1.与(日期2)相比;
}
}
在jsp中,displaytag允许您指定类似这样的比较器-

<display:column 
   property="firstLoginTime" 
   title="First timelogged onto site"
   sortable="true"
   comparator="your.project.CustomDateComparator"
/>

添加属性,即
firstLoginTimeHtml
通过getter方法显示格式化日期。然后在原始日期中添加
sortProperty




感谢您提供的链接。但是如果我为firstLoginTime列创建自定义装饰器,并为空日期发送“NA”。那么在排序的情况下,它将为列返回字符串排序,而不是日期排序。我想要的是,此列的排序将只针对非空日期进行。空日期将被视为“NA”,其他日期将保留为日期,而不是字符串。我想我可能一直在引导您进入花园路径,提及表装饰器-使用自定义比较器代替。
<display:column 
   property="firstLoginTime" 
   title="First timelogged onto site"
   sortable="true"
   comparator="your.project.CustomDateComparator"
/>