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


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

                            --WH

 

一、分頁的思路

    首先我們得知道寫分頁代碼時的思路,保持思路清晰,有步驟的進行,才能行雲如水。先來看看分頁的效果

                        

    這就是一個分頁導航,其中能得到的數據有

        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時,需要把請求的頁碼交給服務器。不然服務器不知道你要獲得第幾頁的數據。

       我做的導航圖的邏輯代碼

       顯示所有員工數量、總頁數

       首先超鏈接 

       如果當前頁為第一頁時,就沒有上一頁這個超鏈接顯示

       如果當前頁不是第一頁也不是最后一頁,則有上一頁和下一頁這個超鏈接顯示

       如果當前頁是最后一頁,則只有上一頁這個超鏈接顯示,下一頁沒有

       尾頁超鏈接 

      

      

 

      代碼

 View Code

 

 

六、總結

    其實分頁真的很簡單,難點就在一個地方,javabean的構建,只要理清楚了pageBean中需要哪些屬性,各種屬性的作用是什么,那么分頁就so easy了。還有一個就是在jsp中寫分頁導航時的邏輯,不要混亂了。其實一點也不難,有興趣的同學可以自己動手實現一下分頁的功能。對自己理解分頁有很大的幫助,以后就在也不用到別人那里復制粘貼別人的分頁代碼了,自己也能寫。靠自己豐衣足食。

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM