SSM利用pageHelper实现分页

给大家分享一个简单实用的分页处理

一、需要pageHelper的包

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>4.0.0</version>
</dependency>

注意版本不能小于4.0.0

二、配置SqlMapConfig.xml

<!-- 配置分页插件 -->
	<plugins>
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库         -->
        	<property name="dialect" value="mysql"/>
		</plugin>
	</plugins> 

三、serviceImpl

public PageResult<Notice> selectAll(int page,int pageSize) {
        // TODO Auto-generated method stub
        // TODO Auto-generated method stub
        PageHelper.startPage(page, pageSize);
        List<Notice> list=noticeMapper.selectAll();
        
        PageResult<Notice> pageResult=new PageResult<Notice>();
        pageResult.setRows(list);
        //计算总条数
        PageInfo<Notice> pageInfo=new PageInfo<Notice>(list);
        Long total=pageInfo.getTotal();
        //计算总页数
        Long countPage;
        if(total%pageSize==0){
            countPage=total/pageSize;
        }else{
            countPage=total/pageSize+1;
        }
        pageResult.setCountPage(countPage);
        
        return pageResult;
    }

这个返回的结果类自己创建一下就行了,主要是

private Long countPage;
	//任意类型
	private List<?> rows;
	
	public Long getCountPage() {
		return countPage;
	}

四、controller

把数据传到页面

@GetMapping("/toNotices")
	public String toNotices(@RequestParam(defaultValue="1") int page,Model model){
		PageResult<Notice> pageResult=noticeService.selectAll(page, 10);
		model.addAttribute("notices", pageResult.getRows());
		model.addAttribute("countPage", pageResult.getCountPage());
		model.addAttribute("page", page);
		return "view/notices";
	}

五、jsp

 <div id="barDivId">
		       <input type="hidden" value="${page }" id="page">
			        	总页数:${countPage}  |  当前页:${page}
		        	 | 
		        	<a href="${path }/notice/toNotices?page=1">首页</a>
		        	 | 
		        	<c:if test="${page==1}">上一页</c:if>
		        	<c:if test="${page>1}"><a href="${path }/notice/toNotices?page=${page-1}">上一页</a></c:if>
		        	 | 
		        	<c:if test="${page==countPage}">下一页</c:if>
		        	<c:if test="${page<countPage}"><a href="${path }/notice/toNotices?page=${page+1}">下一页</a></c:if>
					 | 
		        	<a href="${staticPath }/notice/toNotices?page=${countPage}">末页</a>   
		      </div>
好了就这些,欢迎大神指正批评


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值