这篇“Java怎么使用Queryable-pageable实现分页效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“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; 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实现分页效果”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。