我分页是用struts的logic
<logic:present name="yourFormName" property="yourVectorName">
<logic:iterate id="yourId" name="yourFormName" property="yourVectorName">
<bean:write name="yourId" property="inYourVector"/>
</logic:iterate>
</logic:present>
一般是现在servlet里取好数据送到要显示的form里。然后返回jsp。
#####################
ps:我只会用struts,不好意思 

解决方案 »

  1.   

    我写的一个用哈希表分页的bean,共你参考!!!
    package com.globe;
    import com.globe.DbConnection;
    import java.sql.*;
    import java.util.*;
    import java.io.*;
    public class PaginationBean{
    ResultSet Rst=null;
    DbConnection db=null;
    int RowCount=0;
    int intPageSize=10;
    int intPageCount=0;
    int intPage=1;
    int Total;
    String SQL=null;

    public PaginationBean(){

    }
    public int getPageCount(){
    return this.intPageCount;
    }

    public void setPage(String Page){
    this.intPage=Integer.parseInt(Page);

    }
    public void setPageSize(String Size){
    this.intPageSize=Integer.parseInt(Size);;

    }
    public int getPageSize(){
       return this.intPageSize;
    }
    public void setSQL(String SQL){
    this.SQL=SQL;
    }
    public boolean haveRecorder(){
    System.out.print(SQL);
          db=new DbConnection();
         db.openConnection();
    try{
    Rst=db.executeQuery(SQL);

    Rst.last();
    int RowCount =Rst.getRow();
    System.out.print(RowCount);
    if (RowCount<=0)
    {return false;}
    Rst.first();
    intPageCount = (RowCount + intPageSize - 1) / intPageSize; //总页码数        if (intPage > RowCount)
             intPage = intPageCount; //输入页码数大于总页码数的处理        if (intPageCount > 0)
            {
              int startrow = (intPage - 1) * intPageSize + 1; //开始显示记录数
              Rst.absolute(startrow);
            }
    }
    catch(SQLException e){
    return false;
    }
    return true;
    }public Hashtable Pagination(){

    Hashtable returnrow = new Hashtable();
    Hashtable[] returnColumn;
    try{
    //判断字段数据劳数组
    //date 返回 93
    //int 返回 2
    //String 返回 12   数组
               ResultSetMetaData columnType = Rst.getMetaData();
               returnColumn= new Hashtable[intPageSize];//输出数据
                int i = 0;
                int a;
                String ResultSet;
                int Result;
                do
                {
              returnColumn[i]=new Hashtable();
                 for(int t = 1;t<columnType.getColumnCount()+1;t++){
                  System.out.println("type=" + columnType.getColumnType(t));
                  if (columnType.getColumnType(t) == 12||columnType.getColumnType(t)==1)
                 {
                   ResultSet = Rst.getString(t);
                   if (ResultSet==null){
                    ResultSet="";
                   }
                   a=t-1;
                   returnColumn[i].put(Integer.toString(a), ResultSet);
                   System.out.print(ResultSet);
                   System.out.print(returnColumn[i].get("0"));
                               } else if (columnType.getColumnType(t) == 2)
                  {
                    Result = Rst.getInt(t);
                    a=t-1;
                    returnColumn[i].put(Integer.toString(a), new Integer(Result));              } else if (columnType.getColumnType(t) == 93)
                  {
                    ResultSet = Rst.getDate(t).toString();
                    if (ResultSet==null){
                    ResultSet="";
                   }
                    a=t-1;
                    returnColumn[i].put(Integer.toString(a), ResultSet);               }
                  
                    }//获取数据写入hashtable
                  
                  System.out.print(returnColumn[0].get("0"));
                  returnrow.put(Integer.toString(i), returnColumn[i]);
                  Rst.next();
                  i++;
                  System.out.print(i);
               }while (i < intPageSize && !Rst.isAfterLast());
              
     
            
            
        }catch(SQLException e){System.out.print(e.getMessage());}
        return returnrow;
            
            }
    }
      

  2.   

    也可以象ResultSet中的rs.absolute((showpage-1)*pagesize+1);
    在jsp页面中
    int index=((showpage-1)*pagesize+1)-1;//vector是以第0位开始的。
    int end=index+pagesize-1;
    if(end>vector.size())
    end=vector.size();for(int i=index;i<end;i++)
    {
        out.println((yourclass)vector.get(i).getXXX());}
    至于减一的那些地方我没测试过。限想到的,不保证对,但思路应该没错。
    剩余的自己完成吧。
      

  3.   

    int index=((showpage-1)*pagesize+1)-1;//vector是以第0位开始的。
    int end=index+pagesize-1;
    if(end>vector.size())
    end=vector.size();for(int i=index;i<end;i++)
    {
        out.println((yourclass)vector.get(i).getXXX());}就这种思路,
    我做的系统好多用到vector
    都是这样实现分页的
      

  4.   

    很久没来了,发上一贴:代码如下
    ****.java
    {
    在LinkmanListBean有一个类型为 java.util.Collection 的变量
    LinkmanListBean linkmanListBean = new LinkmanListBean();
    connection = dbcm.getConnection();连接数据库
    DBAccess dba = new DBAccess(connection);
    String sql ="SELECT ID,name from linkman ";
    ResultSet rs = dba.openSelect(sql);
    rs.last();
    int count = rs.getRow();
    在页面上提交的的信息
    linkmanListBean.setStart(String.valueOf(start));开始的条目
    linkmanListBean.setRange(String.valueOf(range));每页显示的条目
    linkmanListBean.setCount(String.valueOf(count));一共信息的数目
    LinkedList linkmanList = new LinkedList();
    if (count > 0) {if (start > count) {
    throw new Exception("NO_TOPICS");
    }
    rs.absolute(start);
    for (int i = 0; i < range && count > 0; i++) {
    SupplierMsg linkmanListmsg = new SupplierMsg();
    linkmanListmsg.setU_id(rs.getString("ID"));
    linkmanListmsg.setM_name(rs.getString("name"));
    linkmanListmsg.setSupplier(String.valueOf(supplier));
    linkmanList.add(linkmanListmsg);
    rs.next();
    count--;
    }
    }
    linkmanListBean.setLinkmanmsg(linkmanList);
    rs.close();
    dba.closeSelect();
    return linkmanListBean;返回结果
    以上是写在java文件里的
    在jsp页面调用   <%
    Iterator Linkmanlist=linkmanListBean.getLinkmanmsg().iterator(); 
    while(Linkmanlist.hasNext()){
    SupplierMsg linkmanlistmsg=(SupplierMsg)Linkmanlist.next();
    %>
        <tr bgcolor="#F3F3F3"> 
          <td width="24%" height="10"  ><A HREF="listlinkmanmsg.do?u_id=<%=linkmanlistmsg.getU_id()%>&supplier=<%=linkmanlistmsg.getSupplier()%>"><%=linkmanlistmsg.getM_name()%></A></td>
          
        <td width="22%" height="10"  ><A HREF="Admindellinkman.do?u_id=<%=linkmanlistmsg.getU_id()%>&supplier=<%=linkmanlistmsg.getSupplier()%>">删除</A></td>
          <td width="26%" height="10"  >&nbsp;</td>
          <td width="28%" height="10"  >&nbsp; </td>
        </tr>
     <% }
    这是我通过被人的代码,改写了一下,测试通过的,也可以联系我![email protected]