1些侍、排序
我們先增加一點測試數(shù)據(jù)
回到PostController中的findAll方法,改成按照publishDate倒序排序
2俺泣、后臺分頁
JpaRepository提供了一個Pageable接口參數(shù)用作分頁距潘,同時包含了排序PageRequest是Pageable的實現(xiàn)類,這里我們使用PageRequest下面的這個靜態(tài)方法來構(gòu)造我們的分頁請求
page圆恤,是當(dāng)前頁數(shù),從0開始計數(shù)腔稀,size是每頁的數(shù)據(jù)大小盆昙,Sort是排序羽历,在上面我們已經(jīng)用過了。
在這里我們先不去動原來的findAll方法了淡喜,我們新增一個findPage方法
因為是get請求秕磷,我們可以直接在瀏覽器測試
可以看到瀏覽器正常返回了,但是數(shù)據(jù)中文亂碼炼团,我們打開開發(fā)者工具澎嚣,查看網(wǎng)絡(luò)請求,這里不是亂碼就ok了们镜。
現(xiàn)在請求放回的是一個Page接口的實現(xiàn)類PageImpl币叹,簡單解釋下他包含的屬性:
content:即當(dāng)前分頁的數(shù)據(jù)集List
empty:當(dāng)前頁是否為空
first:是不是第一頁
last:是不是最后一頁
number:當(dāng)前頁碼(從0開始)
numberOfElements:當(dāng)前頁的數(shù)據(jù)大腥笄浮(除了最后一頁可能小于分頁大小模狭,其他頁都應(yīng)等于分頁大小)
pageable:我們開始傳入的分頁請求
size:分頁大小
sort:排序
totalElements:總共有多少數(shù)據(jù)
totalPages:總共有多少頁
這里面有很多屬性都是冗余的踩衩,都可以通過其他屬性計算出來嚼鹉,大家可以根據(jù)需要選用。
我們修改一下頁碼驱富,后臺接口應(yīng)該是沒問題了锚赤。
3、前端分頁
下圖是最終的樣式
修改list.ftlh褐鸥,增加分頁組件
size-change事件是在選擇每頁顯示多少條時觸發(fā)线脚,current-change事件則是在當(dāng)前頁碼改變時觸發(fā),前端頁碼從1開始計數(shù)叫榕。
現(xiàn)在第一頁數(shù)據(jù)出來了浑侥,我們點擊分頁的時候,數(shù)據(jù)沒變化晰绎,因為我們在處理handleSizeChange和handleCurrentChange時沒有重新發(fā)起請求寓落,我們重構(gòu)下代碼,增加一個query方法
這樣我們的分頁功能就算全完成了荞下。
4伶选、總結(jié)
這章主要講了怎么進行排序和分頁,這時我們實戰(zhàn)中經(jīng)常會碰到的問題尖昏,我們需要熟悉好springboot提供給我們的接口仰税。更多情況下,我們經(jīng)常還需要對頁面數(shù)據(jù)進行過濾查詢抽诉,我們在下一章進行講解陨簇。
代碼:
https://github.com/www15119258/springboot-study/tree/branch13