Java使用Queryable-pageable實(shí)現(xiàn)分頁(yè)效果
在維護(hù)老項(xiàng)目的時(shí)候需要對(duì)部分分頁(yè)進(jìn)行手動(dòng)修改、方式是獲取前端的分頁(yè)參數(shù) page以及rows、 new PageRequest對(duì)象把分頁(yè)參數(shù)傳進(jìn)去、通過(guò) queryable.setPageable(pageable);保存、最后進(jìn)行調(diào)用。
完整代碼如下:
@ResponseBody @RequestMapping(value = "getLbjzkList", method = RequestMethod.GET) @PageableDefaults(sort = "id=desc") private void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request, HttpServletResponse response) throws IOException { EntityWrapper<LbjZk> entityWrapper = new EntityWrapper<LbjZk>(entityClass); propertyPreFilterable.addQueryProperty("id"); propertyPreFilterable.addQueryProperty("name"); Integer page= Integer.parseInt(request.getParameter("page").toString()); Integer rows= Integer.parseInt(request.getParameter("rows").toString()); // 預(yù)處理 queryable.setPageable(new PageRequest(page, rows)); QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass); SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass); PageJson<LbjZk> pagejson = new PageJson<LbjZk>(lbjZkService.list(queryable,entityWrapper)); String content = JSON.toJSONString(pagejson, filter); StringUtils.printJson(response, content); }
PageJson分頁(yè)工具類(lèi):
package com.railway.core.model; import java.io.Serializable; import java.util.List; import com.railway.core.query.data.Page; /** * 頁(yè)面展示分頁(yè) * * @author lyy * * @param <T> */ public class PageJson<T> implements Serializable { private static final long serialVersionUID = 1L; private long page = 1;// 當(dāng)前頁(yè) private long rows = 10;// 每頁(yè)顯示記錄數(shù) private long total; // 總數(shù) private long totalPages; // 總頁(yè)數(shù) private List<T> results; // 結(jié)果 public PageJson() { } public PageJson(List<T> results) { this(0, Long.MAX_VALUE, Long.MAX_VALUE, results); } public PageJson(Page<T> page) { this(page.getNumber(), page.getSize(), page.getTotalElements(), page.getContent()); } public PageJson(long page, long rows, long total, List<T> results) { this.page = page; this.rows = rows; this.total = total; this.results = results; this.totalPages = getRows() == 0 ? 1 : (int) Math.ceil((double) total / (double) getRows()); } public long getPage() { return page; } public void setPage(long page) { this.page = page; } public long getRows() { return rows; } public void setRows(long rows) { this.rows = rows; } public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } public long getTotalPages() { return totalPages; } public List<T> getResults() { return results; } public void setResults(List<T> results) { this.results = results; } }
到此這篇關(guān)于Java使用Queryable-pageable實(shí)現(xiàn)分頁(yè)效果的文章就介紹到這了,更多相關(guān)Java分頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java適配器模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java適配器模式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07JavaSwing基礎(chǔ)之Layout布局相關(guān)知識(shí)詳解
上次我們說(shuō)到View的Mearsure流程,今天接著說(shuō)說(shuō)layout. 關(guān)于layout,很多朋友知道它是負(fù)責(zé)布局的,那么具體是怎么布局的?viewGroup和view的layout方法又有什么不同?一起來(lái)看看吧,需要的朋友可以參考下2021-05-05詳解FutureTask如何實(shí)現(xiàn)最大等待時(shí)間
這篇文章主要為大家詳細(xì)介紹了如何從源碼中了解FutureTask實(shí)現(xiàn)最大等待時(shí)間的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-03-03一文搞懂Java頂層類(lèi)之Object類(lèi)的使用
java.lang.Object類(lèi)是Java語(yǔ)言中的根類(lèi),即所有類(lèi)的父類(lèi)。它中描述的所有方法子類(lèi)都可以使用。本文主要介紹了Object類(lèi)中toString和equals方法的使用,感興趣的小伙伴可以了解一下2022-11-11Java中用戶(hù)線程與守護(hù)線程的使用區(qū)別
這篇文章主要介紹了Java中用戶(hù)線程與守護(hù)線程的使用區(qū)別,Java語(yǔ)言中無(wú)論是線程還是線程池,默認(rèn)都是用戶(hù)線程,因此用戶(hù)線程也被成為普通線程,下文關(guān)于其與守護(hù)線程的區(qū)別詳情,需要的小伙伴可以參考一下2022-05-05java實(shí)現(xiàn)Excel轉(zhuǎn)換為圖片
在實(shí)際開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)有這樣的需求,需要將Excel表格或特定區(qū)域轉(zhuǎn)換為圖片,所以小編今天就來(lái)為大家介紹一下如何使用Java將Excel轉(zhuǎn)化為圖片吧2023-10-10Springboot框架實(shí)現(xiàn)自動(dòng)裝配詳解
在使用springboot時(shí),很多配置我們都沒(méi)有做,都是springboot在幫我們完成,這很大一部分歸功于springboot自動(dòng)裝配。本文將詳細(xì)為大家講解SpringBoot的自動(dòng)裝配原理,需要的可以參考一下2022-08-08