色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Java中如何實(shí)現(xiàn)分頁功能?

林國瑞2年前22瀏覽0評論

雖然現(xiàn)在有很多好用的框架,對分頁進(jìn)行支持,很簡單的就把分頁的效果做出來,但是如果手動(dòng)實(shí)現(xiàn)分頁效果又如何呢。

一、分頁的思路

首先我們得知道寫分頁代碼時(shí)的思路,保持思路清晰,有步驟的進(jìn)行,才能行云如水。先來看看分頁的效果

這就是一個(gè)分頁導(dǎo)航,其中能得到的數(shù)據(jù)有

totalRecord:總共員工數(shù),數(shù)據(jù)庫中總的記錄數(shù),這里有55條

totalPage:總頁數(shù),11頁

pageSize:每頁顯示的記錄數(shù),這里可以看到每頁顯示5條

pageNum:當(dāng)前頁為第幾頁,比如圖中就為第9頁,因?yàn)?是沒有超鏈接的,

start:總共能顯示5頁,讓用戶進(jìn)行點(diǎn)擊,7為起始頁

end:11為能顯示的尾頁,也就是,如果用戶點(diǎn)擊第8頁,那么start就為6,end就為10,每次都只有5頁共點(diǎn)擊查詢。

每次能夠得到對應(yīng)頁數(shù)所需要的5條數(shù)據(jù),等等這些數(shù)據(jù)都要在jsp中顯示出來,也就是說,每次都要從后臺(tái)拿那么多數(shù)據(jù)過來進(jìn)行顯示,所以我們就想辦法把這些數(shù)據(jù)封裝在一個(gè)javabean當(dāng)中,每次后臺(tái)都將查詢到的數(shù)據(jù)放入javabean對象中,我們只需要將該對象存入request作用域,然后在jsp頁面中從域中獲取需要的數(shù)據(jù)即可。

二、創(chuàng)建PageBean存放數(shù)據(jù)

PageBean.java

總共需要8個(gè)屬性pageNum、pageSize、totalRecord、totalPage、startIndex、list、start、end,

pageNum、pageSize、totalRecord:通過構(gòu)造方法就能得到。pageNum請求頁面提交過來的參數(shù),pageSize是自己設(shè)置的,totalRecord是查詢數(shù)據(jù)庫得到的

totalPage、startIndex、start、end是通過內(nèi)部算法得出,

list需要通過查詢數(shù)據(jù)庫在通過set方式得到。

注意:該類使用泛型是為了不僅僅在這個(gè)項(xiàng)目中使用,在別的項(xiàng)目中也同樣可以使用,

代碼如下

ViewCode

三、在service層編寫業(yè)務(wù)邏輯代碼

其實(shí)就是在該層將我們所需要的PageBean對象構(gòu)建好,返回給上一層

User類是我們需要顯示的數(shù)據(jù)的封裝后的javabean。

四、Servlet中編寫控制代碼

五、JSP中顯示數(shù)據(jù),構(gòu)建分頁導(dǎo)航

因?yàn)閷⑽覀兯行枰臄?shù)據(jù)都封裝在了pageBean中,pageBean對象又在request域中,所以在jsp頁面中,我們只需要拿到我們所需要的數(shù)據(jù),進(jìn)行顯示即可,構(gòu)造導(dǎo)航圖需要注意的有一點(diǎn),邏輯要搞清楚,想要顯示什么不想顯示什么,全屏自己控制了,只需要記得一點(diǎn),在請求Servlet時(shí),需要把請求的頁碼交給服務(wù)器。不然服務(wù)器不知道你要獲得第幾頁的數(shù)據(jù)。

我做的導(dǎo)航圖的邏輯代碼

顯示所有員工數(shù)量、總頁數(shù)

首先超鏈接

如果當(dāng)前頁為第一頁時(shí),就沒有上一頁這個(gè)超鏈接顯示

如果當(dāng)前頁不是第一頁也不是最后一頁,則有上一頁和下一頁這個(gè)超鏈接顯示

如果當(dāng)前頁是最后一頁,則只有上一頁這個(gè)超鏈接顯示,下一頁沒有

尾頁超鏈接

代碼

ViewCode

六、總結(jié)

其實(shí)分頁真的很簡單,難點(diǎn)就在一個(gè)地方,javabean的構(gòu)建,只要理清楚了pageBean中需要哪些屬性,各種屬性的作用是什么,那么分頁就soeasy了。還有一個(gè)就是在jsp中寫分頁導(dǎo)航時(shí)的邏輯,不要混亂了。