天天看點

Java Web(十一) 分頁功能的實作

      雖然現在有很多好用的架構,對分頁進行支援,很簡單的就把分頁的效果做出來,但是如果自己手寫是一個怎樣的流程的?今天就來說說它,手動實作分頁效果。

                            --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中寫分頁導航時的邏輯,不要混亂了。其實一點也不難,有興趣的同學可以自己動手實作一下分頁的功能。對自己了解分頁有很大的幫助,以後就在也不用到别人那裡複制粘貼别人的分頁代碼了,自己也能寫。靠自己豐衣足食。