雖然現在有很多好用的架構,對分頁進行支援,很簡單的就把分頁的效果做出來,但是如果自己手寫是一個怎樣的流程的?今天就來說說它,手動實作分頁效果。
--WZY
一、分頁的思路
首先我們得知道寫分頁代碼時的思路,保持思路清晰,有步驟的進行,才能行雲如水。先來看看分頁的效果
這就是一個分頁導航,其中能得到的資料有
totalRecord:總共員工數,資料庫中總的記錄數,這裡有55條
totalPage:總頁數,11頁
pageSize:每頁顯示的記錄數,這裡可以看到每頁顯示5條
pageNum:目前頁為第幾頁,比如圖中就為第9頁,因為9是沒有超連結的,
start:總共能顯示5頁,讓使用者進行點選,7為起始頁
end:11為能顯示的尾頁,也就是,如果使用者點選第8頁,那麼start就為6,end就為10,每次都隻有5頁共點選查詢。
每次能夠得到對應頁數所需要的5條資料,等等這些資料都要在jsp中顯示出來,也就是說,每次都要從背景拿那麼多資料過來進行顯示,是以我們就想辦法把這些資料封裝在一個javabean當中,每次背景都将查詢到的資料放入javabean對象中,我們隻需要将該對象存入request作用域,然後在jsp頁面中從域中擷取需要的資料即可。
二、建立PageBean存放資料
PageBean.java
總共需要8個屬性pageNum、pageSize、totalRecord、totalPage、startIndex、list、start、end,
pageNum、pageSize、totalRecord:通過構造方法就能得到。pageNum請求頁面送出過來的參數,pageSize是自己設定的,totalRecord是查詢資料庫得到的
totalPage、startIndex、start、end是通過内部算法得出,
list需要通過查詢資料庫在通過set方式得到。
注意:該類使用泛型是為了不僅僅在這個項目中使用,在别的項目中也同樣可以使用,
代碼如下
View Code
三、在service層編寫業務邏輯代碼
其實就是在該層将我們所需要的PageBean對象建構好,傳回給上一層
User類是我們需要顯示的資料的封裝後的javabean。
四、Servlet中編寫控制代碼
五、JSP中顯示資料,建構分頁導航
因為将我們所有需要的資料都封裝在了pageBean中,pageBean對象又在request域中,是以在jsp頁面中,我們隻需要拿到我們所需要的資料,進行顯示即可,構造導航圖需要注意的有一點,邏輯要搞清楚,想要顯示什麼不想顯示什麼,全屏自己控制了,隻需要記得一點,在請求Servlet時,需要把請求的頁碼交給伺服器。不然伺服器不知道你要獲得第幾頁的資料。
我做的導航圖的邏輯代碼
顯示所有員工數量、總頁數
首先超連結
如果目前頁為第一頁時,就沒有上一頁這個超連結顯示
如果目前頁不是第一頁也不是最後一頁,則有上一頁和下一頁這個超連結顯示
如果目前頁是最後一頁,則隻有上一頁這個超連結顯示,下一頁沒有
尾頁超連結
、
代碼
六、總結
其實分頁真的很簡單,難點就在一個地方,javabean的建構,隻要理清楚了pageBean中需要哪些屬性,各種屬性的作用是什麼,那麼分頁就so easy了。還有一個就是在jsp中寫分頁導航時的邏輯,不要混亂了。其實一點也不難,有興趣的同學可以自己動手實作一下分頁的功能。對自己了解分頁有很大的幫助,以後就在也不用到别人那裡複制粘貼别人的分頁代碼了,自己也能寫。靠自己豐衣足食。