现有一ArrayList,里面存入的是一些JavaBean对象(每个JavaBean里含有title,describe,date等字符串对象),date是这种格式的:2008-6-21 10:44:42,现在我想将ArrayList的内容按date的值由大到小显示在jsp页面中,请问怎么做呢?
下面是我写的jsp页面,没有按date值大小排序显示,供参考:<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%@ page import="java.util.*" %>
<%@ page import="com.psp.bean.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>易宝搜索</title>
</head>
<%
ArrayList resultSet = (ArrayList)request.getAttribute("result");//取得符合结果的集合
ResourceItemBean ri = new ResourceItemBean(); //存放资源信息的JavaBean
String key = (String)request.getAttribute("key");
%>
<body>
<jsp:include page="/query.jsp" />
<table border="1" align="center" cellspacing="0" cellpadding="5">
<tr>
<td onmouseover="showBack(this)">文件名</td>
<td>格式</td>
<td>描述</td>
<td>最后发表</td>
<td>预览|播放</td>
<td>下载</td>
</tr>
<%
for(Iterator iter = resultSet.iterator(); iter.hasNext();) {
ri = (ResourceItemBean)iter.next();
%>
<tr>
<td>
<%=ri.getTitle().replace(key, "<span style='color:#F00'>"+key+"</span>") %>
</td>
<td><%=ri.getKind() %></td>
<td><%=ri.getDescribe().length()>15 ? 
  (ri.getDescribe().substring(0, 15).replace(key, "<span style='color:#F00'>"+key+"</span>") + "....")
    : ri.getDescribe().replace(key, "<span style='color:#F00'>"+key+"</span>")%></td>
<td><%=ri.getDate() %></td>
<% //根据不同类型显示预览还是播放
if(ri.getKind().trim().equals("ppt") || 
   ri.getKind().trim().equals("doc") || 
   ri.getKind().trim().equals("xls") ||
   ri.getKind().trim().equals("ppt") ||
   ri.getKind().trim().equals("txt")) {
%>
<td>
预览
</td>
<% } else {%>
<td>
播放
</td>
<%} %>
<td><a href="download.do" onclick="Javascript:history.go(-1)">下载</a></td>
</tr>
<%
}
%>
</table>
</body>
</html>另:有谁能将这个jsp页面改成用Struts标签做呢?呵呵,帮帮忙!

解决方案 »

  1.   

    同意,也可以用Collection.sort()对你的list进行排序。
      

  2.   

    ArrayList里的值如果是数据库里拿的,在取得时候排下序就行,如果不是ArrayList用算法排序
      

  3.   

    两种解法:
    如果数据从数据库里取,那么你可以使用order by子句直接在库里排好
    如果要在Java端排序那有个前提你的JavaBean必须实现java.lang.Comparable接口才能使用java.util.Collections类里的静态方法sort()进行排序。
      

  4.   

    嗯,同意四楼的!一般情况下是直接在查询的时候进行排序,即使用order by
      

  5.   

    order by {日期} asc/desc 就可以,自己多试几次,印象比较深刻
      

  6.   

    谢谢,,我的数据不是从数据库里取的。。看来实现java.lang.Comparable这个接口比较好,,谢谢各位,我先试试!!
      

  7.   

    说说我的看法啊 错了不怪啊!!呵呵<% 
    ArrayList resultSet = (ArrayList)request.getAttribute("result");//取得符合结果的集合 
    ResourceItemBean ri = new ResourceItemBean(); //存放资源信息的JavaBean 
    String key = (String)request.getAttribute("key"); 
    %>你用了这小脚本 又想用struts标签  那还不如搞个EL标签还好一些 你用的是servlet做的吧!!!
      

  8.   

    1, sql语句order by 日期 desc2,list有个sort()方法
      

  9.   

    学生在次谢过楼上各位了!!MagicError---不妨把你写的发上来供小弟参考下吧~~呵呵
      

  10.   

    同意使Collection.sort()方法进行排序.