Spring Data Jpa分页显示

        /**
	 * 分页查询电影动态信息
	 * @param page
	 * @param pageSize
	 * @return
	 */ 
        @Override
	public List<WebSiteInfo> list(WebSiteInfo webSiteInfo, Integer page, Integer pageSize) {
		Pageable pageable=new PageRequest(page, pageSize,Sort.Direction.DESC,"publishDate");
		Page<WebSiteInfo> pageWebSite=webSiteInfoRepository.findAll(new Specification<WebSiteInfo>() {
			
			@Override
			public Predicate toPredicate(Root<WebSiteInfo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
				Predicate predicate=cb.conjunction();
				if(webSiteInfo!=null){
					if(StringUtil.isNotEmpty(webSiteInfo.getInfo())){
						predicate.getExpressions().add(cb.like(root.get("info"), "%"+webSiteInfo.getInfo().trim()+"%"));
					}
				}
				return predicate;
			}
		}, pageable);
		return pageWebSite.getContent();
	}
        /**
	 * 获取总记录数
	 * @return
	 */
	@Override
	public Long getCount(WebSiteInfo webSiteInfo) {
		Long count=webSiteInfoRepository.count(new Specification<WebSiteInfo>() {

			@Override
			public Predicate toPredicate(Root<WebSiteInfo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
				Predicate predicate=cb.conjunction();
				if(webSiteInfo!=null){
					if(StringUtil.isNotEmpty(webSiteInfo.getInfo())){
						predicate.getExpressions().add(cb.like(root.get("info"), "%"+webSiteInfo.getInfo().trim()+"%"));
					}
				}
				return predicate;
			}
		});
		return count;
	}
/**
	 * 生成分页代码
	 * @param targetUrl 目标地址
	 * @param totalNum 总记录数
	 * @param currentPage 当前页
	 * @param pageSize 每页大小
	 * @return
	 */
	public static String genPagination(String targetUrl,long totalNum,int currentPage,int pageSize){
		long totalPage=totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;
		if(totalPage==0){
			return "未查询到数据";
		}else{
			StringBuffer pageCode=new StringBuffer();
			pageCode.append("<li><a href='"+targetUrl+"/1'>首页</a></li>");
			if(currentPage>1){
				pageCode.append("<li><a href='"+targetUrl+"/"+(currentPage-1)+"'>上一页</a></li>");			
			}else{
				pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");		
			}
			for(int i=currentPage-2;i<=currentPage+2;i++){
				if(i<1||i>totalPage){
					continue;
				}
				if(i==currentPage){
					pageCode.append("<li class='active'><a href='"+targetUrl+"/"+i+"'>"+i+"</a></li>");	
				}else{
					pageCode.append("<li><a href='"+targetUrl+"/"+i+"'>"+i+"</a></li>");	
				}
			}
			if(currentPage<totalPage){
				pageCode.append("<li><a href='"+targetUrl+"/"+(currentPage+1)+"'>下一页</a></li>");		
			}else{
				pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");	
			}
			pageCode.append("<li><a href='"+targetUrl+"/"+totalPage+"'>尾页</a></li>");
			return pageCode.toString();
		}
	}
	
/**
	 * 分页查询 电影网站动态信息
	 * @param page
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/list/{id}")
	public ModelAndView list(@PathVariable(value="id",required=false)Integer page)throws Exception{
		ModelAndView mav=new ModelAndView();
		List<WebSiteInfo> webSiteInfoList=webSiteInfoService.list(null, page-1, 20);
		Long total=webSiteInfoService.getCount(null);
		mav.addObject("webSiteInfoList", webSiteInfoList);
		mav.addObject("pageCode", PageUtil.genPagination("/webSiteInfo/list", total, page, 20));
		mav.addObject("title", "电影网站动态信息列表");
		mav.addObject("mainPage", "webSiteInfo/list");
		mav.addObject("mainPageKey", "#f");
		mav.setViewName("index");
		return mav;
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值