您的位置:首页 > 其它

SSM利用pageHelper实现分页

2018-03-27 18:56 706 查看
给大家分享一个简单实用的分页处理
一、需要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> 三、serviceImplpublic 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>好了就这些,欢迎大神指正批评
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pageHelper 分页