Skip to content

Latest commit

 

History

History
54 lines (43 loc) · 2.01 KB

分頁.md

File metadata and controls

54 lines (43 loc) · 2.01 KB

分頁

介紹

第 N 頁/共 M 頁首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁

  • 分頁的優點: 只查詢一頁,不用查詢所有頁

分頁數據

頁面的數據都是由 Servlet 傳遞來的 Servlet:

  • 當前頁: pageCode, pc;
    • pc: 如果頁面沒有傳遞當前頁碼,那麼 Servlet 默認是第一頁,或這按頁面傳遞的為準。
  • 總頁數: totalPages, tp
    • tp: 總紀錄數/每頁紀錄數
  • 總紀錄數: totalRecord, tr
    • tr: dao 來獲取,select count(*) from t_customer;
  • 每頁紀錄數: 業務數據或叫系統數據`
  • 當前頁數據: beanList
  • url

數據的傳遞

這些分頁數據總要在各層之間來回傳遞。 把這些分頁數據封裝到一個 javabean 中,他就叫分頁 Bean, 例如: PageBean

分頁在各層中的處理

  • 頁面: 給出分頁相關的鏈接
    • 頁面有可能需要給 Servlet 傳遞 pc
  • Servlet: 創建 PageBean 對象,給 PageBean 所有的屬性賦值,然後傳遞給頁面。
    • Servlet 需要給 Dao 傳遞 pc, ps
  • Service
  • Dao:
    • tr: select count(*) from t_customer
    • beanList: select * from t_customer limit x, y

顯示分頁頁碼列表

  • 一共顯示多少頁碼,定為10
  • 當前頁,再頁碼列表中的位置,定為6

只需要當前頁來訂出頁碼列表,訂下頁碼列表只需要兩樣數據:

  • begin
  • end

需要使用 pc 來推算出 begin 和 end,計算公式:

  • 如果總頁數 <= 10 (列表長度), 那麼 begin=1, end=總頁數
  • 使用公式計算: begin=pc-5, end=pc+4
  • 頭溢出: 當 begin < 1時,讓 begin=1
  • 尾溢出: 當 end > ${tp} 時,讓 end=${tp}

在超鏈接中要保留參數

當使用多條件查詢後,然後在點擊第2頁時,這個第2頁超鏈接沒有條件了,所以會丟失條件,所以我們需要在頁面上的所有鏈接都要保留條件。 要把條件以一個字符串的形式保存到 PageBean 的 url 中,這個任務交給 Servlet