struts2 标签对指定的元素集合排序

来源:互联网 发布:http 数据库 编辑:程序博客网 时间:2024/05/16 10:46

sort标签可用于对指定的集合元素进行排序,排序时,我们必须提供自己的排序规则,及实现自己的Comparator, 自己的Comparator需要实现java util 包下的Comparator接口。如下所示:

Java代码 
  1. public class ContentComparator implements Comparator<Content> {   
  2.     public int compare(Content o1, Content o2) {   
  3.         java.util.Calendar c1=java.util.Calendar.getInstance();   
  4.         java.util.Calendar c2=java.util.Calendar.getInstance();   
  5.         c1.setTime(o1.getInsertTime());   
  6.         c2.setTime(o2.getInsertTime());   
  7.         //按时间倒序排序   
  8.         //按时间顺序则直接返回c1.compareTo(c2)即可   
  9.         return -( c1.compareTo(c2));   
  10.     }   
  11. }  

 

这里是对内容按时间倒序排列。当然我们也可以对内容的其它字段进行排序,如果你需要的话,

该方法如果返回一个大于0的数则表示第一个元素大于第二个元素,反之亦反,如果返回0 则表示两个元素相等。

页面在调用sort标签是 有一个必填属性Comparator,该属性指定了我们要进行排序的Comparator的实例。

还有一个source属性。这个可选填,该属性可指定我们需排序的集合,如果不填,则表示对值栈栈顶的集合进行排序

下面是页面调用排序代码:

Java代码 
  1. <s:bean id="ContentComparator" name="util.ContentComparator"></s:bean>   
  2.     <!-- 按时间倒序排列 -->   
  3.     <s:sort comparator="ContentComparator" source="contentList">   
  4.             <s:iterator status="index" id="content">   
  5.                    </s:iterator>   
  6.     </s:sort>