时间:2021-05-20
本文实例为大家分享了Java实现分页功能的具体代码,供大家参考,具体内容如下
不用根据改变SQL的形式去查询;
直接查询所有的数据,根据页码自动显示数据;
分页对象
public class PageUtils implements Serializable { /** * */ private static final long serialVersionUID = -5247614532234782640L; public final static String PAGE = "page"; public final static String PAGE_NO = "pageno"; public final static String PAGE_SIZE = "pagesize"; private long pageSize=10;//每页显示记录数 private long firstResult=0;//当页第一条记录号 private long totalCount;//总记录数 private long totalPage;//总页码 private long pageNo=1;//当前页码 private List<?> sumData;//此集合可用来保存 合计数据 private List<?> data;//查询结果 public long getPageSize() { return pageSize; } public void setPageSize(long pageSize) { this.pageSize = pageSize; } public long getFirstResult() { if(pageNo>0){ firstResult=pageSize * (pageNo -1); }else{ firstResult = 0; } return firstResult; } public long getNextPageResult(){ if(pageNo>0){ return pageSize*(pageNo-1); }else{ return pageNo; } } public void setFirstResult(long firstResult) { this.firstResult = firstResult; } public long getTotalCount() { return totalCount; } public void setTotalCount(long totalCount) { this.totalCount = totalCount; totalPage = this.totalCount/pageSize; if (totalPage == 0 || totalCount % pageSize != 0) { totalPage++; } } public long getTotalPage() { return totalPage; } public void setTotalPage(long totalPage) { this.totalPage = totalPage; } public long getPageNo() { return pageNo; } public void setPageNo(long pageNo) { this.pageNo = pageNo; } public List<?> getData() { return data; } public void setData(List<?> data) { this.data = data; } /** * 是否第一页 */ public boolean isFirstPage() { return pageNo <= 1; } /** * 是否最后一页 */ public boolean isLastPage() { return pageNo >= getTotalPage(); } /** * 下一页页码 */ public long getNextPage() { if (isLastPage()) { return pageNo; } else { return pageNo + 1; } } /** * 上一页页码 */ public long getPrePage() { if (isFirstPage()) { return pageNo; } else { return pageNo - 1; } } public PageUtils(){} public PageUtils(long pageNo){ this.pageNo=pageNo; } public PageUtils(long pageNo,long pageSize){ this.pageNo=pageNo; this.pageSize = pageSize; } public List<?> getSumData() { return sumData; } public void setSumData(List<?> sumData) { this.sumData = sumData; }}查询的数据实体
在查询的实体里添加页码和每页显示条数参数;
private int pageSize; //每页显示的条数private int pageNo; //当前页码public int getPageSize() { return pageSize;}public void setPageSize(int pageSize) { this.pageSize = pageSize;}控制层Controller
@RequestMapping("/list")public String list(Model model,ChannelValueInfoView input) { // input:传入的参数为对象 PageUtils page=new PageUtils(); //如果传入的当前条数为0,则赋予值(首次查询不带参); if(input.getPageSize()==0){ //当前页码第一页 input.setPageNo(1); //每页显示条数,当前每页显示10条数据; input.setPageSize(10); } page.setPageNo(input.getPageNo()); page.setPageSize(input.getPageSize()); //核心分页代码 PageHelper p=new PageHelper(); Page<ChannelValueInfoList> l=p.startPage(input.getPageNo(),input.getPageSize()); //紧跟着的第一个select查询将会被分页 channelValueService.getChannelValueInfoViewList(input); model.addAttribute("input", input); page.setData(l); page.setTotalCount(l.getTotal()); model.addAttribute("page", page); return "index"; }页面处理
//循环穿过来的PAGE.data数据<tr th:each="ts : ${page.data}"><td th:text="${ts.channelValueName}"></td>----------<form id="content_form" action="/channelValue/list" method="post" > <div> 总数:<span id="totalCount" th:text="${page.totalCount}">0</span> </div> <ul class="pagination"> <li class="disabled"> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onFirst()">首页</a> </li> <li class="disabled"> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onPre()"><</a> </li> <li class="active"> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <span id="beginRow" th:text="${page.pageNo}">0</span> </a> </li> <li class="disabled"> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onNext()">></a> </li> <li class="disabled"> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onLast()">尾页</a> </li> </ul></for m>----------<script> function onFirst() { onList(1); } function onPre() { var beginRow = parseInt($('#beginRow').html()); if (beginRow - 1 > 0) { onList(beginRow - 1); } } function onNext() { var beginRow = parseInt($('#beginRow').html()); var totalCount = parseInt($('#totalCount').html()); var pageSize = parseInt($('#pageSize').val()); if (parseInt(totalCount / pageSize + 1) > beginRow + 1) { onList(beginRow+1); } } function onLast() { var totalCount = parseInt($('#totalCount').html()); var pageSize = parseInt($('#pageSize').val()); onList(parseInt(totalCount / pageSize + 1) - 1); } function onList(pageNo) { if (pageNo == 0) pageNo = 1; $('#pageNo').val(pageNo); $("#content_form").submit(); }</script>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
上篇文章给大家介绍DataGridView使用自定义控件实现简单分页功能,本篇使用BindingNavigator来实现简单分页功能。其实也只是借用了一个Bin
网页的分页功能的实现比较简单,实现方法也多种多样。今天总结一个简单的Jsp真分页实例。首先,提到分页就要先明确一个概念,何为真分页何谓假分页。假分页:一次性从数
前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视)这里用基础的三层架构+servl
这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即
本文介绍了laravel手动创建数组分页的实现代码,分享给大家,具体如下:laravel分页功能:有几种方法可以对数据进行分页。最简单的是在[查询语句构造器]或