话不多说,请看代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
public Map<String, Object> getWeeklyBySearch( final Map<String, String> serArgs,
String pageNum, String pageSize) throws Exception {
// TODO Auto-generated method stub
Map<String,Object> resultMap= new HashMap<String, Object>();
// 判断分页条件
pageNum = TextUtils.isNotBlank(pageNum) ? pageNum : "1" ;
pageSize = TextUtils.isNotBlank(pageSize) ? pageSize : "10" ;
// 分页时的总页数、每页条数、排序方式、排序字段
Pageable StuPageable = PageUtils.buildPageRequest(Integer.valueOf(pageNum),Integer.valueOf(pageSize), new Sort(Direction.DESC, new String[] { "xmzbsj" , "lstProinfo.proId" }));
// 按照条件进行分页查询,根据StuPageable的分页方式
Page<Weekly> StuPage = proWeeklyDao.findAll( new Specification<Weekly>() {
public Predicate toPredicate(Root<Weekly> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> lstPredicates = new ArrayList<Predicate>();
if (TextUtils.isNotBlank(serArgs.get( "xmmc" ))) {
lstPredicates.add(cb.like(root.get( "lstProinfo" ).get( "xmmc" ).as(String. class ), "%" + serArgs.get( "xmmc" ) + "%" ));
}
if (TextUtils.isNotBlank(serArgs.get( "xmzbqssj" ))) {
lstPredicates.add(cb.greaterThanOrEqualTo(root.get( "xmzbsj" ).as(String. class ),serArgs.get( "xmzbqssj" )));
}
if (TextUtils.isNotBlank(serArgs.get( "xmzbjzsj" ))) {
lstPredicates.add(cb.lessThanOrEqualTo(root.get( "xmzbsj" ).as(String. class ),serArgs.get( "xmzbjzsj" )));
}
Predicate[] arrayPredicates = new Predicate[lstPredicates.size()];
return cb.and(lstPredicates.toArray(arrayPredicates));
}
}, StuPageable);
// 按照条件进行分页查询
resultMap = PageUtils.getPageMap(StuPage);
return resultMap;
}
|
buildPageRequest()方法,导入的包,下面是自己写的方法
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
* @param pageNum 当前页
* @param pageSize 每页条数
* @param sortType 排序字段
* @param direction 排序方向
*/
public static PageRequest buildPageRequest( int pageNum, int pageSize, String sortType, String direction) {
Sort sort = null ;
if (!TextUtils.isNotBlank(sortType)) {
return new PageRequest(pageNum - 1 , pageSize);
} else if (TextUtils.isNotBlank(direction)) {
if (Direction.ASC.equals(direction)) {
sort = new Sort(Direction.ASC, sortType);
} else {
sort = new Sort(Direction.DESC, sortType);
}
return new PageRequest(pageNum - 1 , pageSize, sort);
} else {
sort = new Sort(Direction.ASC, sortType);
return new PageRequest(pageNum - 1 , pageSize, sort);
}
}
public static PageRequest buildPageRequest( int pageNum, int pageSize, String sortType) {
return buildPageRequest(pageNum, pageSize, sortType, null );
}
|
getPageMap()方法:
JPA的Page也是集合,获取Page集合里的值,最后获取到的这些(key,value)
?
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 封装分页数据到Map中。
*/
public static Map<String, Object> getPageMap(Page<?> objPage) {
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put(Constants.PAGE_RESULT_LIST, objPage.getContent()); // 数据集合,符合查询条件的所有记录数据
resultMap.put(Constants.PAGE_TOTAL_NUM, objPage.getTotalElements()); // 总记录数
resultMap.put(Constants.PAGE_TOTAL_PAGE, objPage.getTotalPages()); // 总页数
resultMap.put(Constants.PAGE_NUM, objPage.getNumber()); // 当前页码
resultMap.put(Constants.PAGE_SIZE, objPage.getSize()); // 每页显示数量
return resultMap;
}
|
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持快网idc!
原文链接:http://www.cnblogs.com/Donnnnnn/p/5857229.html
相关文章
猜你喜欢
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-29 39
-
2025-06-04 101
-
2025-05-24 49
-
2025-05-25 61
-
2025-05-27 75
热门评论