sort标签可用于对指定的集合元素进行排序,排序时,我们必须提供自己的排序规则,及实现自己的Comparator, 自己的Comparator需要实现java util 包下的Comparator接口。如下所示:
public class ContentComparator implements Comparator<Content> {
public int compare(Content o1, Content o2) {
java.util.Calendar c1=java.util.Calendar.getInstance();
java.util.Calendar c2=java.util.Calendar.getInstance();
c1.setTime(o1.getInsertTime());
c2.setTime(o2.getInsertTime());
//按时间倒序排序
//按时间顺序则直接返回c1.compareTo(c2)即可
return -( c1.compareTo(c2));
}
}
这里是对内容按时间倒序排列。当然我们也可以对内容的其它字段进行排序,如果你需要的话,
该方法如果返回一个大于0的数则表示第一个元素大于第二个元素,反之亦反,如果返回0 则表示两个元素相等。
页面在调用sort标签是 有一个必填属性Comparator,该属性指定了我们要进行排序的Comparator的实例。
还有一个source属性。这个可选填,该属性可指定我们需排序的集合,如果不填,则表示对值栈栈顶的集合进行排序
下面是页面调用排序代码:
<s:bean id="ContentComparator" name="util.ContentComparator"></s:bean>
<!-- 按时间倒序排列 -->
<s:sort comparator="ContentComparator" source="contentList">
<s:iterator status="index" id="content">
</s:iterator>
</s:sort>