jsp+servlet+javabean实现分页

分页是被讨论的快烂了的问题,现在的分页组件页到处都是!像有名的disply EC等等.
最近有舍友问起来,我说用组件啊,不过毕业设计用那个好像不太合适!就自己写个!不过觉得不能叫组件,就是只能简单实现罢了,有时间再修改.

   1.分页bean
  1. package useBean;   
  2.   
  3. import java.sql.ResultSet;   
  4. import java.util.List;   
  5.   
  6. import bean.EvaluationBean;   
  7.   
  8. public class PageDiv {   
  9.   
  10.     /**  
  11.      * @param args  
  12.      */  
  13.     private int pageSize;   
  14.     private int pageNum;   
  15.     private int startRow;   
  16.     private int endRow;   
  17.     private int restPage;   
  18.     private int currentPage;   
  19.        
  20.     //获得当前页数用来实现翻页   
  21.     public int getCurrentPage() {   
  22.         return currentPage;   
  23.     }   
  24.     public void setCurrentPage(int currentPage) {   
  25.         this.currentPage = currentPage;   
  26.     }   
  27.     //获得最后一行   
  28.     public int getEndRow(List list) {   
  29.         if(this.getCurrentPage()==this.pageNum){   
  30.            
  31.             this.endRow=this.getStartRow()+this.getRestPage(list)-1;   
  32.         }   
  33.         else{   
  34.             this.endRow=this.getStartRow()+this.getPageSize()-1;   
  35.         }   
  36.         return endRow;   
  37.     }   
  38.     public void setEndRow(int endRow) {   
  39.         this.endRow = endRow;   
  40.     }   
  41.        
  42.     //获得总页数   
  43.     public int getPageNum(List list) {   
  44.         if(list.size()%this.getPageSize()==0){   
  45.             this.pageNum=list.size()/this.getPageSize();   
  46.         }   
  47.         else{   
  48.             this.pageNum=list.size()/this.getPageSize()+1;   
  49.         }   
  50.         return pageNum ;   
  51.     }   
  52.     public void setPageNum(int pageNum) {   
  53.         this.pageNum = pageNum;   
  54.     }   
  55.        
  56.     //设置每页显示的记录数   
  57.     public int getPageSize() {   
  58.         return pageSize;   
  59.     }   
  60.     public void setPageSize(int pageSize) {   
  61.         this.pageSize = pageSize;   
  62.     }   
  63.        
  64.     //获得起始行   
  65.     public int getStartRow() {   
  66.         startRow = (this.currentPage-1)*(this.pageNum)+1;   
  67.         return startRow;   
  68.     }   
  69.     public void setStartRow(int startRow) {   
  70.         this.startRow = startRow;   
  71.     }   
  72.        
  73.     //获得剩余页数   
  74.     public int getRestPage(List list) {   
  75.         if(list.size()%this.getPageSize()==0){   
  76.             this.restPage=0;   
  77.         }   
  78.         else{   
  79.             this.restPage=list.size()%this.getPageSize();   
  80.         }   
  81.         return restPage;   
  82.     }   
  83.     public void setRestPage(int restPage) {   
  84.         this.restPage = restPage;   
  85.     }   
  86.        
  87.     public static void main(String[] args) {   
  88.     // TODO Auto-generated method stub   
  89.     Link_db ld=new Link_db();   
  90.    EvaluationBean e=new EvaluationBean();   
  91.    List list=e.findEvByName("李建成");   
  92.    System.out.println("共"+list.size()+"条记录");   
  93.    PageDiv pd=new PageDiv();   
  94.    pd.setPageSize(5);   
  95.    pd.setCurrentPage(2);   
  96.    System.out.println("当前是"+pd.getCurrentPage()+"页");   
  97.    System.out.println("共"+pd.getPageNum(list)+"页记录");   
  98.    System.out.println("最后一页有"+pd.getRestPage(list)+"条记录");   
  99.    System.out.println("本页的第一行是"+pd.getStartRow()+"条记录");   
  100.    System.out.print("最后一行记录是第"+pd.getEndRow(list)+"条记录");   
  101.     }   
  102.   
  103.   
  104. }   


2.调用的serlet

  1. public void doGet(HttpServletRequest request, HttpServletResponse response)   
  2.             throws ServletException, IOException {   
  3.   
  4.         response.setContentType("text/html");   
  5.         PrintWriter out = response.getWriter();   
  6.         String tname="";   
  7.         List listVo=null;   
  8.         if(request.getParameter("userName")!=null){   
  9.             tname=request.getParameter("userName");   
  10.              EvaluationBean eb=new EvaluationBean();   
  11.              listVo =eb.findEvByName(tname);   
  12.         }   
  13.         if(listVo.size()>0){   
  14.             HttpSession session=request.getSession();   
  15.             session.setAttribute("tname", tname);   
  16.             session.setAttribute("list", listVo);   
  17. //       RequestDispatcher   rd   =   request.getRequestDispatcher("/WEB-INF/teacher.jsp");      
  18. //         rd.forward(request, response);   
  19.         response.sendRedirect("../teacher.jsp");   
  20.         }   
  21.         else{   
  22.              RequestDispatcher   rd   =   request.getRequestDispatcher("/WEB-INF/error.jsp");      
  23.              rd.forward(request, response);   
  24.         }   
  25.     }  

3.调用的jsp文件
  1. <body>  
  2. <form action="" name="form1">  
  3. <center>  
  4. <%    
  5. List listVo=(List)session.getAttribute("list");   
  6. String tname=(String)session.getAttribute("tname");   
  7. int  averageScore=0;   
  8.         PageDiv pd=new PageDiv();   
  9.         pd.setPageSize(5);   
  10.         int currentPage=1;   
  11.         int pageNum=pd.getPageNum(listVo);   
  12.         if(request.getParameter("currentPage")!=null){   
  13.         currentPage=new Integer(request.getParameter("currentPage")).intValue();   
  14.         }   
  15.         pd.setCurrentPage(currentPage);   
  16.             %>  
  17.   
  18.         
  19. <h2>  
  20.   <%=tname %>"老师你好!   
  21. h2>  
  22. <font style='font-size: 8pt'>  
  23. 当前是第<%=pd.getCurrentPage()%>页)   
  24. <br>  
  25. <%=pd.getPageNum(listVo) %>页记录)   
  26. <br>  
  27. (共"<%=listVo.size() %>"项记录)   
  28. font>  
  29. <table width='680' border='1' cellspacing='0' cellpadding='0' bordercolor='#B8D9F2'>  
  30. <tr>  
  31. <td><font style='font-size: 8pt'>  
  32. 编号   
  33. td>  
  34.    <td><font style='font-size: 8pt'>  
  35. 分数   
  36. td>  
  37.     <td><font style='font-size: 8pt'>  
  38. 课程名称   
  39. td>  
  40. <td><font style='font-size: 8pt'>  
  41. 教师名称   
  42.   td>  
  43. <td><font style='font-size: 8pt'>  
  44. 综合评语   
  45.    td>  
  46. tr>  
  47.             <%   
  48.             for(int i=pd.getStartRow();i<pd.getEndRow(listVo)+1;i++){   
  49.                 TeacherVo vo=(TeacherVo)listVo.get(i-1);   
  50.                 out.print("<tr>");   
  51.                 out.print("<td><font style='font-size: 8pt'>");   
  52.                 out.print(i);   
  53.                 out.print("td>");   
  54.                 out.print("<td><font style='font-size: 8pt'>");   
  55.                 out.print(vo.getAllScore());   
  56.                 out.print("td>");   
  57.                 out.print("<td><font style='font-size: 8pt'>");   
  58.                 out.print(vo.getCname());   
  59.                 out.print("td>");   
  60.                 out.print("<td><font style='font-size: 8pt'>");   
  61.                 out.print(vo.getTname());   
  62.                 out.print("td>");   
  63.                 out.print("<td><font style='font-size: 8pt'>");   
  64.                 out.print(vo.getCompre_reviews());   
  65.                 out.print("td>");   
  66.                 out.print("tr>");   
  67.             }   
  68.              %>  
  69.              <tr>  
  70. <td colspan='5' align='right'>  
  71. <font style='font-size: 8pt'><a href='teacher.jsp?currentPage=1'>第一页a>  
  72.      
  73. <% if(pd.getCurrentPage()==1){%>  
  74. <font style='font-size: 8pt'><a href='teacher.jsp?currentPage='>上一页a>  
  75. <%} else{%>  
  76. <font style='font-size: 8pt'><a href='teachert.jsp?currentPage='>上一页a>  
  77. <%} %>  
  78.      
  79. <% if(pd.getCurrentPage()==pd.getPageNum(listVo)){%>  
  80. <font style='font-size: 8pt'><a href='teacher.jsp?currentPage='>下一页a>  
  81. <%} else{%>  
  82. <font style='font-size: 8pt'><a href='teacher.jsp?currentPage='>下一页a>  
  83. <%} %>  
  84.      
  85. <font style='font-size: 8pt'><a href='teacher.jsp?currentPage=5'>最后一页a>  
  86.      
  87.   
  88. <input type="button" value="翻到" onclick="T()" class="btn6">  
  89. <input name="currentPage" size="3" value=<%=pd.getCurrentPage()%>>页   
  90. td>  
  91. tr>  
  92. table>  
  93. <br>  
  94. <script>  
  95.  function T(){   
  96.  var i=form1.currentPage.value;   
  97.  alert(i);   
  98.  var j=<%=pageNum%>;   
  99.  if((i>0)&&(i<j)){   
  100.      window.location="teacher.jsp?currentPage="+i;   
  101.  }   
  102.  else{   
  103.      window.location="teacher.jsp?currentPage="+j;   
  104.  }   
  105.  }   
  106. script>  
  107. form>  
  108.   
  109. body>  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值