页面分页并且展示有很多方法 pageable举例说名
今天讲述的并不是pageable这玩意咋使用,上面代码是从别处Copy过来的,今天想概述的是,如何通过pageable实现分页,并且根据信息进行排序
public class PageableFactory {
private final static int defaultSize = 20;
private final static String defaultSort = null;
public static Pageable create(Integer page, Integer size) {
return new PageRequest(page, null != size && size > 0 ? size : defaultSize);
}
public static Pageable create(Integer page, Integer size, int defaultSize) {
return new PageRequest(page, null != size && size > 0 ? size : defaultSize);
}
public static Pageable create(Integer page, Integer size, Sort sort) {
return new PageRequest(page, null != size && size > 0 ? size : defaultSize, sort);
}
public static Pageable create(Integer page, Integer size, int defaultSize, Sort sort) {
return new PageRequest(page, null != size && size > 0 ? size : defaultSize, sort);
}
public static Pageable create(Integer page, Integer size, String sort, String order) {
return create(page, size, defaultSize, sort, defaultSort, order);
}
public static Pageable create(Integer page, Integer size, int defaultSize, String sort, String order) {
return create(page, size, defaultSize, sort, defaultSort, order);
}
public static Pageable create(Integer page, Integer size, String sort, String defaultSort, String order) {
return create(page, size, defaultSize, sort, defaultSort, order);
}
public static Pageable create(Integer page, Integer size, int defaultSize, String sortProperty, String defaultSort, String order) {
Sort sort = SortFactory.create(sortProperty == null ? defaultSort : sortProperty, order);
return new PageRequest(page, null != size && size > 0 ? size : defaultSize, sort);
}
public static Pageable create(Pageable pageable, String sortPropterty, Sort.Direction direction) {
Sort sort = SortFactory.create(pageable.getSort(), sortPropterty, direction);
return create(pageable.getPageNumber(), pageable.getPageSize(), sort);
}
public static Pageable create(Pageable pageable, String sortPropterty) {
Sort sort = SortFactory.create(pageable.getSort(), sortPropterty);
return create(pageable.getPageNumber(), pageable.getPageSize(), sort);
}
public static Pageable create(Pageable pageable, Sort sort) {
sort = SortFactory.create(pageable.getSort(), sort);
return create(pageable.getPageNumber(), pageable.getPageSize(), sort);
}
public static Pageable create(Pageable pageable, Sort.Order... orders) {
Sort sort = SortFactory.create(pageable.getSort(), orders);
return create(pageable.getPageNumber(), pageable.getPageSize(), sort);
}
}
通过工具类实现 pageable的排序 哈哈
public Page<XXX>page(Pageable pageable){
//通过创建时间进行排序
pageable = PageableFactory.create(pageable, "createTime", Sort.Direction.DESC);
}
上面方法其实就是将其pageable重新定义,定义为一个有条件的分页 通过controller传来的参数pageable重新定义