使用com.github.pagehelper.Page 类的时候
当在数据库分页查询到数据之后传递给前端.会有一个奇怪的问题,
public class Page<E> extends ArrayList<E> {
private static final long serialVersionUID = 1L;
private int pageNum;
private int pageSize;
private int startRow;
private int endRow;
private long total;
private int pages;
private boolean count;
private Boolean reasonable;
private Boolean pageSizeZero;
}
类中的这些属性都没有.只会把list传给前端,
为什么呢
刚开始我以为是getset方法的问题.当我找到get方法的时候排除了,有get方法并且也是public的;
主要原因是因为Page继承的是ArrayList类,在转成json的时候会转成JsonArray,而这个过程自定义的这些私有变量全部不会转化,所以会造成数据的丢失,
解决的办法很简单:
1.自己把page转成json,但是我自己也没这样写过,因为我觉得这样有点麻烦
2.自己写一个类,不继承ArrayList,把数据放到自定义的对象中,即可,例如:
public class PageInfo<T> implements Serializable {
private Collection<T> collection;
private int pageNum;
private int pageSize;
private long total;
private int pages;
public PageInfo(Page page){
this.collection = new ArrayList<>(page);
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
this.total = page.getTotal();
}
}
因为我不需要太多属性,因此跳了两个属性,获取到page之后转成pageInfo传递给前端即可;