生活随笔
收集整理的這篇文章主要介紹了
很好的分页实例代码(JSP)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1:首先創建數據庫鏈接類,我的博客前面有源碼 2:創建封裝你要分頁的那個數據庫表的Bean 3:封裝實現分頁功能的功能Bean 具體代碼見下:
| import java.util.ArrayList; import java.sql.*; public class PageBean { ????private int curPage = 1; //當前是第幾頁 ????private int maxPage; //一共有多少頁 ????private int maxRowCount; //一共有多少行 ????public int rowsPerPage = 10; //每頁多少行 ????Connection conn; ????public ArrayList data; ????public PageBean() throws Exception { ????????this.setPageBean(); ????} ????public int getCurPage() { ????????return curPage; ????} ????public int getMaxPage() { ????????return maxPage; ????} ????public int getMaxRowCount() { ????????return maxRowCount; ????} ????public int getRowsPerPage() { ????????return rowsPerPage; ????} ????public void setCurPage(int curPage) { ????????this.curPage = curPage; ????} ????public void setMaxPage(int maxPage) { ????????this.maxPage = maxPage; ????} ????public void setMaxRowCount(int maxRowCount) { ????????this.maxRowCount = maxRowCount; ????} ????public void setRowsPerPage(int rowsPerPage) { ????????this.rowsPerPage = rowsPerPage; ????} ????//得到要顯示于本頁的數據 ????public PageBean getResult(String page) throws Exception { ????????try { ????????????PageBean pageBean = new PageBean(); ????????????ArrayList list = new ArrayList(); ????????????int pageNum = Integer.parseInt(page); ????????????Statement stmt = conn.createStatement(); ????????????String strSql = "select top " + pageNum * pageBean.rowsPerPage + ????????????????????????????" * from employee";//改成你的表 ????????????ResultSet rset = stmt.executeQuery(strSql); ????????????int i = 0; ????????????while (rset.next()) { ????????????????????//這里要和表的字段對應起來!!!! ????????????????????Employee item=new Employee(); ????????????????????item.setEmp_id(rset.getString("emp_id")); ????????????????????item.setFname(rset.getString("fname")); ????????????????????item.setMinit(rset.getString("minit")); ????????????????????item.setLname(rset.getString("lname")); ????????????????????item.setJob_id(rset.getInt("job_id")); ????????????????????item.setJob_lvl(rset.getInt("job_lvl")); ????????????????????item.setPub_id(rset.getString("pub_id")); ????????????????????item.setHire_date(rset.getString("hire_date")); ????????????????????list.add(item); ????????????????i++; ????????????} ????????????ConnectionManager.closeResultSet(rset); ????????????ConnectionManager.closeStatement(stmt); ????????????pageBean.setCurPage(pageNum); ????????????pageBean.data = list; ????????????return pageBean; ????????} catch (Exception e) { ????????????e.printStackTrace(); ????????????throw e; ????????} ????} ????//獲取總行數 ????public int getAvailableCount() throws Exception { ????????int ret = 0; ????????conn = ConnectionManager.getConnection(); ????????Statement stmt = conn.createStatement(); ????????String strSql = "select * from employee";//改成你的表 ????????ResultSet rset = stmt.executeQuery(strSql); ????????while (rset.next()) { ????????????ret++; ????????} ????????return ret; ????} ????//初始化時對PageBean進行設置 ????public void setPageBean() throws Exception { ????????//得到總行數 ????????this.setMaxRowCount(this.getAvailableCount()); ????????if (this.maxRowCount % this.rowsPerPage == 0) { //根據總行數計算總頁數 ????????????this.maxPage = this.maxRowCount / this.rowsPerPage; ????????} else { ????????????this.maxPage = this.maxRowCount / this.rowsPerPage + 1; ????????} ????} } |
?
4:建立中間中轉的Servlet? PageServlet: 代碼如下:
| public void init() throws ServletException { ??} ??//Process the HTTP Get request ??public void doGet(HttpServletRequest request, HttpServletResponse response) throws ??????ServletException, IOException { ????try ??????{ ????????????PageBean page1=new PageBean(); ????????????PageBean page2=page1.getResult((String)request.getParameter("jumpPage")); ??????????????//把PageBean保存到request對象中。注意:viewpage.jsp里jsp:useBean id必須為才可以"page2"!!! ??????????????request.setAttribute("page2",page2); ??????} ??????catch(Exception e) ??????{ ??????????????e.printStackTrace(); ??????} ??????????/** ???????*把視圖派發到viewForum.jsp ???????*/ ??????javax.servlet.RequestDispatcher dis=request.getRequestDispatcher("viewpage.jsp"); ??????dis.forward(request,response); ?} |
5:現在建立現實JSP頁面 viewpage.jsp:
| <%@ page contentType="text/html; charset=GBK" import="java.util.*,pagetest.Employee" %> <jsp:useBean id="page2" scope="request" class="pagetest.PageBean"/> <script language="JavaScript" type="text/JavaScript"> function Jumping(){ ??document.PageForm.submit(); ??return ; } function gotoPage(pagenum){ ??document.PageForm.jumpPage.value = pagenum; ??document.PageForm.submit(); ??return ; } </script> <html> <head> <title> 分頁功能 </title> </head> <body bgcolor="#ffffff"> <table border="1"> <% String s=String.valueOf(page2.getCurPage()); try{ ArrayList list=page2.getResult(s).data; for(int i=0;i<list.size();i++){ ??Employee emp=(Employee)list.get(i); %> <tr> <td><%=emp.getEmp_id()%></td> <td><%=emp.getFname()%></td> <td><%=emp.getHire_date()%></td> <td><%=emp.getJob_id()%></td> <td><%=emp.getJob_lvl()%></td> <td><%=emp.getLname()%></td> <td><%=emp.getMinit()%></td> <td><%=emp.getPub_id()%></td> </tr> <% ?} }catch(Exception e){} %> </table> <%if(page2.getMaxPage()!=1){ %> <form name="PageForm" action="pageservlet" method="post"> 每頁 <%=page2.rowsPerPage%> 行 共 <%=page2.getMaxRowCount()%>行 第 <%=page2.getCurPage()%> 頁 共 <%=page2.getMaxPage()%>頁 <BR> <% ??if (page2.getCurPage() == 1) { ????out.print(" 首頁 上一頁"); ??} ??else { %> <a HREF="javascript:gotoPage(1)">首頁</A> <a HREF="javascript:gotoPage(<%=page2.getCurPage()-1%>)">上一頁</A> <%}%> <% ??if (page2.getCurPage() == page2.getMaxPage()) { ????out.print("下一頁 尾頁"); ??} ??else { %> <a HREF="javascript:gotoPage(<%=page2.getCurPage()+1%>)">下一頁</A> <a HREF="javascript:gotoPage(<%=page2.getMaxPage()%>)">尾頁</A> <%}%> 轉到第 <SELECT name="jumpPage" onchange="Jumping()"> <% ??for (int i = 1; i <= page2.getMaxPage(); i++) { ????if (i == page2.getCurPage()) { %> ??<OPTION selected value="<%=i%>"><%=i%> </OPTION> <%} else {%> ??<OPTION value="<%=i%>"><%=i%> </OPTION> <%} ??}%> </SELECT> 頁 </form> <%}%> </body> </html> |
?
現在運行 就可以看到效果
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的很好的分页实例代码(JSP)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。