Java使用Queryable-pageable实现分页效果
更新时间:2022年06月21日 14:34:14 作者:java李杨勇
这篇文章主要为大家介绍了Java如何使用Queryable-pageable从而实现分页效果,文中的示例代码简洁易懂,感兴趣的小伙伴可以动手尝试一下
在维护老项目的时候需要对部分分页进行手动修改、方式是获取前端的分页参数 page以及rows、 new PageRequest对象把分页参数传进去、通过 queryable.setPageable(pageable);保存、最后进行调用。
完整代码如下:
@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()); // 预处理 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分页工具类:
package com.railway.core.model; import java.io.Serializable; import java.util.List; import com.railway.core.query.data.Page; /** * 页面展示分页 * * @author lyy * * @param <T> */ public class PageJson<T> implements Serializable { private static final long serialVersionUID = 1L; private long page = 1;// 当前页 private long rows = 10;// 每页显示记录数 private long total; // 总数 private long totalPages; // 总页数 private List<T> results; // 结果 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; } }
到此这篇关于Java使用Queryable-pageable实现分页效果的文章就介绍到这了,更多相关Java分页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
java实现Linux(centos) 中docker容器下命令交互的代码(配置向导)
小编在开发项目时遇到个需求,因为系统部署每次都要多台机器拆分部署,很麻烦,怎么配置比较方便呢,今天小编给大家介绍java实现Linux(centos) 中docker容器下命令交互的代码(配置向导),感兴趣的朋友一起看看吧2021-05-05SpringBoot+netty-socketio实现服务器端消息推送
这篇文章主要介绍了SpringBoot+netty-socketio实现服务器端消息推送,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-03-03spring boot 3使用 elasticsearch 提供搜索建议的实例详解
这篇文章主要介绍了spring boot3使用elasticsearch提供搜索建议,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-08-08
最新评论