第 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