JSP的分頁顯示的程式碼和詳細步驟
阿新 • • 發佈:2019-01-22
首先要定義四個變數: int pageSize:每頁顯示多少條記錄 int pageNow:希望顯示第幾頁 int pageCount:一共有多少頁 int rowCount:一共有多少條記錄 說明: pageSize是指定的 pageNow是使用者選擇的 rowCount是計算出來的 該計算式為 if(rowCount%pageSize==0){ pageCount=rowCount/pageSize; }else{ pageCount=rowCount/pageSize+1; } (技巧: 資料庫插入: insert into 表名(欄位1,2,。。。)select 欄位1,2,...from 表名 ) 查詢語句 select top pageSize欄位名列表from表名where id not in (select top pageSize*(pageNow-1)id from 表名) 以我們前面的users表為例,顯示第二頁,該查詢語句就是: select top 3 * from users where userId not in(select top 3 userId from users) (select top 3 userId from users):選出這個表的前三條 前面再選三條 <h1>使用者資訊列表</h1> <% //定義四個分頁會用到的變數 int pageSize=3; int pageNow=1;//預設顯示第一頁 int rowCount=0;//該值從資料庫中查詢 int pageCount=0;//該值是通過pageSize和rowCount //接受使用者希望顯示的頁數(pageNow) String s_pageNow=request.getParameter("pageNow"); if(s_pageNow!=null){ //接收到了pageNow pageNow=Integer.parseInt(s_pageNow); } //查詢得到rowCount Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=System","sa",""); Statement sm=ct.createStatement(); ResultSet rs=sm.exeuteQuery("select count(*) form users "); if(rs.next()){ rowCount=rs.getInt(1); } //計算pageCount if(rowCount%pageSize==0){ pageCount=rowCount/pageSize; }else{ pageCount=rowCount/pageSize+1; } //查詢出需要顯示的記錄 rs=sm.exeuteQuery("select top "+pageSize +" * from users where userId not in(select top " +pageSize*(pageNow-1)+" userId from users) "); %> //顯示 <table border="1"> <tr><td>使用者ID</td><td>使用者名稱字</td><td>密碼</td><td>電郵</td><td>級別</td></tr> <% while(rs.next()){ %> <tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td> <td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getInt(5)%></td></tr> <%}%> </table> <% //上一頁 if(pageNow!=1){ out.println("<a href=wel.jsp?pageNow="+(pageNow-1)+">上一頁</a>"); } //顯示超連結 for(int i=1;i<=pageCount;i++){ out.println("<a href=wel.jsp?pageNow="+i+">["+i+"]</a>"); } //下一頁 if(pageNow!=pageCount){ out.println("<a href=wel.jsp?pageNow="+(pageNow+1)+">下一頁</a>"); } %>