这篇文章主要为大家介绍了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使用Queryable-pageable实现分页效果


基础教程推荐
猜你喜欢
- 全局记录Feign的请求和响应日志方式 2023-01-09
- Java使用EasyExcel进行单元格合并的问题详解 2023-01-18
- JVM分析之类加载机制详解 2023-04-06
- 一文了解Java 线程池的正确使用姿势 2023-06-17
- 工厂方法在Spring框架中的运用 2023-06-23
- Java去掉小数点后面无效0的方案与建议 2023-02-18
- Project Reactor源码解析publishOn使用示例 2023-04-12
- 用java实现扫雷游戏 2022-12-06
- Java File类的概述及常用方法使用详解 2023-05-18
- SpringBoot配置文件中密码属性加密的实现 2023-03-11