我已经将数据封装到list里了,如果直接显示:
<%
     
     for(int i=0;i<list.size();i++){
     
     out.println(list.get(i));
     
     }但是我想分页显示,请问,代码应该如何写呢?请高手提供一个做参考,多谢

解决方案 »

  1.   

    写个分页的业务类,在JSP或者servlet中调用即可。/**
     * 做分页操作的工具类
     * @author Administrator
     *
     */
    public class Page {
    private int pageidid;//页数
    private int prepage;//上一页
    private int nextpage;//下一页
    private String next;
    private String pre;
    private int pagesize;
    private int totalRecord;
    public int getTotalRecord() {
    return totalRecord;
    }
    public void setTotalRecord(int totalRecord) {
    this.totalRecord = totalRecord;
    }
    public int getPagesize() {
    return pagesize;
    }
    public void setPagesize(int pagesize) {
    this.pagesize = pagesize;
    }
    private int totalpage;

    public int getTotalpage() {
    return totalpage;
    }
    public void setTotalpage(int totalpage) {
    this.totalpage = totalpage;
    }
    public int getPageidid() {
    return pageidid;
    }
    public void setPageidid(int pageidid) {
    this.pageidid = pageidid;
    }
    public int getPrepage() {
    return prepage;
    }
    public void setPrepage(int prepage) {
    this.prepage = prepage;
    }
    public int getNextpage() {
    return nextpage;
    }
    public void setNextpage(int nextpage) {
    this.nextpage = nextpage;
    }
    public String getNext() {
    return next;
    }
    public void setNext(String next) {
    this.next = next;
    }
    public String getPre() {
    return pre;
    }
    public void setPre(String pre) {
    this.pre = pre;
    } public Page(String next, int nextpage,  int pageidid,
    String pre, int prepage,int totalpage) {
    super();
    this.next = next;
    this.nextpage = nextpage;

    this.pageidid = pageidid;
    this.pre = pre;
    this.prepage = prepage;
    this.totalpage=totalpage;
    }
    public Page() {
    super();

    }
    //pageid当前页,all总记录数,num为每页显示大小
    public  void apartPage(int pageid,int all,int num){
    this.totalpage=this.computeTotal(all, num);//首先计算总页数
    this.totalRecord=all;
    this.setPagesize(num);
    this.setPageidid(pageid);
    this.setNextpage(pageid);
    this.setPrepage(pageid);
    this.setNext("下一页");
    this.setPre("上一页");
    if(pageid>1){//表示有上一页
    this.setPrepage(pageid-1);
    }else{
    this.setPre("首页");
    }
    int rest=all-pageid*num;
    if(rest>0){//表示有下一页
    this.setNextpage(pageid+1);
    }else{this.setNext("尾页");}
    if(this.pre.equals("首页")&&this.next.equals("尾页")){
    this.setNext("");
    }
    }
    //计算总页数
    private int computeTotal(int all,int num){
    int page=all/num;
    page=all/num>0?page+1:page;
    setTotalpage(page);
    return this.totalpage;
    }
    }
      

  2.   

    给你一个参考:<%@ page import="java.sql.*, com.bjsxt.shopping.order.*, java.util.*" %><%!
    private static final int PAGE_SIZE = 2;
    %><%
    String strPageNo = request.getParameter("pageno");
    int pageNo = 1;
    if(strPageNo != null) {
    pageNo = Integer.parseInt(strPageNo);
    }
    if(pageNo < 1) pageNo = 1;
    %><%
    //get all the users
    List<SalesOrder> orders = new ArrayList<SalesOrder>();
    int totalRecords = OrderMgr.getInstance().getOrders(orders, pageNo, PAGE_SIZE);int totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;
    if(pageNo > totalPages) pageNo = totalPages;
    %><!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=GB18030">
    <title>Insert title here</title>
    </head>
    <body>
    <table border="1" align="center">
    <tr>
    <td>ID</td>
    <td>username</td>
    <td>addr</td>
    <td>odate</td>
    <td>status</td> <td></td>
    </tr>
    <%
    for(Iterator<SalesOrder> it = orders.iterator(); it.hasNext(); ) {
    SalesOrder so = it.next();
    %>
    <tr>
    <td><%=so.getId() %></td>
    <td><%=so.getUser().getUsername() %></td>
    <td><%=so.getAddr() %></td>
    <td><%=so.getODate() %></td>
    <td><%=so.getStatus() %></td>
    <td>
    <a href="OrderDetailShow.jsp?id=<%=so.getId()%>" target="detail">订单明细</a>
    &nbsp;
    <a href="OrderModify.jsp?id=<%=so.getId()%>" target="detail">订单修改</a>
    </td>
    </tr>
    <%
    }
    %>
    </table>
    <center>
    第<%=pageNo %>页
    &nbsp;
    共<%=totalPages %>页
    &nbsp;
    <a href="OrderList.jsp?pageno=<%=pageNo-1 %>">上一页</a>
    &nbsp;
    <a href="OrderList.jsp?pageno=<%=pageNo+1 %>">下一页</a>
    &nbsp;
    <a href="OrderList.jsp?pageno=<%=totalPages %>">最后一页</a>
    </center>
      

  3.   

    谢谢,但是有个问题,我的数据已经在当前jsp页提取,也已经存储到list中了,不涉及到javabean呀,应该如何写呢?多谢
      

  4.   

    谢谢2楼提供的page程序,但是我在jsp页中如何调用呢?请提示下:)多谢
      

  5.   

    在你的web。xml里面配置成像这样的:
    servlet>
        <servlet-name>InitServlet</servlet-name>
        <servlet-class>servlet.InitServlet</servlet-class>
        <init-param>
          <param-name>dbUrl</param-name>
          <param-value>/WEB-INF/db.mdb</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>  <servlet-mapping>
        <servlet-name>InitServlet</servlet-name>
        <url-pattern>/InitServlet</url-pattern>
      </servlet-mapping>
      

  6.   

    封装一个page
    class page{
    int currentPage;//当前页
    int maxResults;//本页记录数
    }找个数据库分页算法
    参数点击分页时搞个form提交过去分页算法晚上一大堆
      

  7.   

    ext 自带分页功能,有可能的话可以考虑下
      

  8.   

    是这样的,我需要的能对存储在list中的数据进行分页显示呀:)由于初学知识很浅,望指教:)
      

  9.   

    jsp中还是一样的来处理的啊,你把分页用的类写好,然后jsp中引用这个类,具体逻辑实现还是要你自己多想想;
    不过还是建议你把对数据库的操作不要写到jsp中,这样耦合性太强了
      

  10.   

    我从网上找了一段代码:http://zhidao.baidu.com/question/111135323.html,不同的是它那个数据在javabean中读取数据封装在list中,那么我的数据是在jsp页面读取出来然后封装在list中,请问应该如何改写呢?谢谢