jsp分頁總結

jsp分頁思路

1.變量的設置: 
  分頁中涉及的變量主要有 總頁數,每頁顯示的記錄數,當前頁數,總記錄數---pageSize(每個頁面所顯示的記錄數)、pageCount(一共有多少個頁面)、showPage(目前顯示第幾頁)、recordCount(總的記錄數),爲了方便理解,畫了一張圖:
  總頁數=總記錄數%每頁顯示的記錄數==0?總記錄數/每頁顯示的記錄數:總記錄數/每頁顯示的記錄數+1

2.查詢語句的設計:
  sqlServer,mySql中一般採用top分頁
  select  top 每頁顯示的記錄數  from  Table   where  主鍵列  not in (select top (當前頁數-1)*每頁顯示的記錄數 主鍵列  from Table)
  oracle一般藉助僞列來分頁
  
3.按鈕可用不可用問題
  當前頁爲第一頁時灰掉上一頁,當前頁爲最後一頁時灰掉下一頁,其他類似! 至於樣式就看個人喜好了!

代碼:

<%!  int pageSize=4;
 int pageCount;
 int showPage;
 %>

<!-- 連接數據庫並從數據庫中調取記錄-->
<%
 Connection con;
 Statement sql;
 ResultSet rs;

 try{Class.forName("com.mysql.jdbc.Driver"); 
 }catch(ClassNotFoundException e){
 }

 try{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/message","root","root");
  sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
  //返回可滾動的結果集 
  rs=sql.executeQuery("select * from messageinfo");
  //將遊標移到最後一行 
  rs.last();
  //獲取最後一行的行號 
  int recordCount=rs.getRow();
  //計算分頁後的總數 
  pageCount=(recordCount%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);

  //獲取用戶想要顯示的頁數:
  String integer=request.getParameter("showPage");
  if(integer==null){
   integer="1";
  }
  try{showPage=Integer.parseInt(integer);
  }catch(NumberFormatException e){
   showPage=1;
  }
  if(showPage<=1){
   showPage=1;
  }
  if(showPage>=pageCount){
   showPage=pageCount;
  }

  //如果要顯示第showPage頁,那麼遊標應該移動到的position的值是:
  int position=(showPage-1)*pageSize+1;
  //設置遊標的位置
  rs.absolute(position);
  //用for循環顯示本頁中應顯示的的記錄
  for(int i=1;i<=pageSize;i++){  
 %>
   <table>
    <tr> 
     <th><%=rs.getString("UserName") %></th>
     <td>發表於:<%=rs.getString("datetime") %></td>
    </tr>
    <tr >
     <th colspan="3"><textarea><%=rs.getString("content") %></textarea></th>
    </tr>
   </table>

 <%  
   rs.next();
  } 
  rs.close();
  con.close();
  }
  catch(Exception e){
  e.printStackTrace();}
 %>
 <br>
 第<%=showPage %>頁(共<%=pageCount %>頁)
 <br>
 <a href="ShowMessages.jsp?showPage=1">首頁</a>
 <a href="ShowMessages.jsp?showPage=<%=showPage-1%>">上一頁</a>
<% //根據pageCount的值顯示每一頁的數字並附加上相應的超鏈接
  for(int i=1;i<=pageCount;i++){
 %>
   <a href="ShowMessages.jsp?showPage=<%=i%>"><%=i%></a>
<% }
 %> 
 <a href="ShowMessages.jsp?showPage=<%=showPage+1%>">下一頁</a>
 <a href="ShowMessages.jsp?showPage=<%=pageCount%>">末頁</a>
 <!-- 通過表單提交用戶想要顯示的頁數 -->
 <form action="" method="get">
  跳轉到第<input type="text" name="showPage" size="4">頁
  <input type="submit" name="submit" value="跳轉">
 </form> 







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章