软件编程
位置:首页>> 软件编程>> java编程>> Java实现简单的分页功能

Java实现简单的分页功能

作者:LandiYax  发布时间:2021-06-02 01:32:48 

标签:java,分页

本文实例为大家分享了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()">&lt;</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()">&gt;</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>
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com