哪位能给一翻页程序.javabean/ servlet的都可以.之前一直用纯jsp的,感觉不咋地.
求例子,多谢.

解决方案 »

  1.   

    手里倒是有一现成的,也可以正常使用,但感觉不爽的是,默认的第一页为0.不影响使用,但感觉不太好.都加一后总页数就加了.哪位能帮忙改一下.谢谢了.Bean文件:
    ===============================================
    //分页显示public class DisPage {
    private int l_start;   //开始纪录
    private int l_end;     //结束纪录
    private int l_curpage; //当前页数
    private int l_totalnum;//总记录数
    private int int_num=20;  //每页20条
    private int l_totalpage; //总的页数public void Init(int currentpage,int totalnum)
    {
        l_curpage = currentpage;
        l_totalnum = totalnum;    if (currentpage>=0)
        {
             if (currentpage>=(int)Math.ceil(l_totalnum/int_num))
                l_curpage = (int)Math.floor(l_totalnum/int_num);
             else
                l_curpage = currentpage;
        }
        else
        {
                l_curpage = 0;
        }    l_start = l_curpage * int_num;
        l_end   = l_start + int_num;    if (l_end > l_totalnum)
                l_end = l_totalnum;    l_totalpage = (int)Math.ceil(l_totalnum/int_num);}public int getCurpage()
    {
        return l_curpage;
    }
    public int getPrepage()
    {
        if (l_curpage-1>=0)
        {
            return l_curpage-1;
        }
        else
        {
            return 0;
        }
    }
    public int getNextpage()
    {
        if (l_curpage+1<=l_totalpage)
        {
            return l_curpage+1;
        }
        else
        {
            return l_totalpage;
        }
    }
    public int getTotalnum()
    {
        return l_totalnum;
    }
    public int getTotalpage()
    {
        return l_totalpage;
    }
    public int getStart()
    {
        return l_start;
    }
    public int getEnd()
    {
        return l_end;
    }
    //结束
    public DisPage() {}
    }
    前台调用:
    ====================================================
    <%Vector listlog = new Vector();
    DispLog displog = new DispLog();
    listlog = displog.allLog();
    //分页程序开始
    int data_num=displog.lognum();
    DisPage dispage=new DisPage();
    int Current_Page = 0;
    String currentpage=(String)request.getParameter("currentpage");
    if (currentpage != null && !currentpage.equals(""))
    {Current_Page = Integer.parseInt(request.getParameter("currentpage"));}dispage.Init(Current_Page,data_num);int l_start = dispage.getStart();
    int l_end = dispage.getEnd();%>
    </head>
    <body topmargin=0>
    <TABLE width=98% border=0 align=center cellPadding=2 cellSpacing=1 class="tableBorder">
    <TBODY>
    <TR align=center bgcolor="#ffffff">
    <Th height="25">登陆信息</Th>
      </TR>
      
    <%int i=0;
    for(i=l_start;i<l_end;i++) {
    Log loginfo = (Log)listlog.elementAt(i);%> 
    <TR >
    <TD height="22" bgcolor="#FFFFFF">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户 <span class="red"><%=loginfo.getUser()%> </span>在 <%=loginfo.getLogindate()%> 登陆,在 <%=loginfo.getLogoutdate()%> 离开,IP地址为:<%=loginfo.getIp()%></TD>
      </TR>
    <%}%>   
      
    <TR >
      <TD height="27" bgcolor="#FFFFFF"><div align="center">记录总条数:<%=data_num%> 
      当前页<%=Current_Page+1%>/<%=dispage.getTotalpage()+1%>总页数 <a href="user_log.jsp?currentpage=0" class="red">首页</a> <a href="user_log.jsp?currentpage=<%=dispage.getPrepage()%>" class="red">上一页</a> <a href="user_log.jsp?currentpage=<%=dispage.getNextpage()%>" class="red">下一页</a> <a href="user_log.jsp?currentpage=<%=dispage.getTotalpage()%>" class="red">末页</a> </div></TD>
      </TR>
    </TBODY>
    </TABLE>
      

  2.   

    只需要在查询数据库时排下序,然后用取出top N个值做为一页不就好了?
      

  3.   

    哪位能共享一个利用mysql来翻页面的例子呀.就是那种要哪些数据取哪些的,不用全部取出来再分配的.谢谢~