java中对list分页并显示数据到页面实例代码

 更新时间:2018年02月10日 11:30:02   作者:你的承諾早已氾黃  
这篇文章主要介绍了java中对list分页并显示数据到页面实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

有时候需要根据条件查询得出的数据较多,需要分页显示到页面上。这时点击下一页就不方便每次带查询条件在数据库中分页。可以在list中进行分页。

page的model类:

public class Page { 
  private Integer currentPage;//当前页 
  private int pageSize;//每页显示记录条数 
  private int totalPage;//总页数 
  private List<?> dataList;//每页显示的数据 
  private int star;//开始数据 
 
  public Integer getCurrentPage() { 
    return currentPage; 
  } 
  public void setCurrentPage(Integer currentPage) { 
    this.currentPage = currentPage; 
  } 
  public int getPageSize() { 
    return pageSize; 
  } 
  public void setPageSize(int pageSize) { 
    this.pageSize = pageSize; 
  } 
  public int getTotalPage() { 
    return totalPage; 
  } 
  public void setTotalPage(int totalPage) { 
    this.totalPage = totalPage; 
  } 
  public List<?> getDataList() { 
    return dataList; 
  } 
  public void setDataList(List<?> dataList) { 
    this.dataList = dataList; 
  } 
  public int getStar() { 
    return star; 
  } 
  public void setStar(int star) { 
    this.star = star; 
  } 
} 

控制层:

@RequestMapping("fenye.do") 
  public String fen(Page page,HttpServletRequest request){ 
 
    try { 
      //查询出的list数据 
      List<Data> showdata=loginService.selectyichall(); 
      //刚开始的页面为第一页 
      if (page.getCurrentPage() == null){ 
        page.setCurrentPage(1); 
      } else { 
        page.setCurrentPage(page.getCurrentPage()); 
      } 
      //设置每页数据为十条 
      page.setPageSize(10); 
      //每页的开始数 
      page.setStar((page.getCurrentPage() - 1) * page.getPageSize()); 
      //list的大小 
      int count = showdata.size(); 
      //设置总页数 
      page.setTotalPage(count % 10 == 0 ? count / 10 : count / 10 + 1); 
      //对list进行截取 
      page.setDataList(showdata.subList(page.getStar(),count-page.getStar()>page.getPageSize()?page.getStar()+page.getPageSize():count)); 
      //设置作用域 
      request.setAttribute("paging", page);         
      return "add/show.jsp"; 
 
    } catch (Exception e) { 
      // TODO Auto-generated catch block    
      e.printStackTrace(); 
      return "mistake.jsp"; 
    } 
  } 

jsp页面:

<script type="text/javascript" language="javascript"> 
 function goPage(page){ 
 location.href="fenye.do?currentPage=" rel="external nofollow" +page; 
 } 
</script> 
 
 
<div> 
 <table width="100%" border="0" align="center" cellspacing="1" > 
 <c:forEach items="${paging.dataList }" var="upl">    
   <tr> 
    <td align="center">${upl.name1 }</td> 
    <td align="center">${upl.name2 }</td> 
    <td align="center">${upl.name3 }</td>    
   </tr> 
   </c:forEach>   
 </table> 
</div> 
<div style="text-align:center; margin-top:10px;color: white;" id="venderfen"> 
 <c:if test="${paging.totalPage > 0}"> 
  当前第 ${paging.currentPage } 页/共  ${paging.totalPage} 页 
 </c:if> 
 <c:if test="${paging.totalPage > 1}"> 
   <c:choose> 
     <c:when test="${paging.currentPage==2 && paging.totalPage==2}"> 
      <a onclick="goPage(1)">首页</a> 
      <a onclick="goPage(${paging.currentPage-1})">上一页</a> 
     </c:when> 
     <c:when test="${paging.currentPage==1}"> 
      <a onclick="goPage(${paging.currentPage+1})">下一页</a> 
      <a onclick="goPage(${paging.totalPage})">末页</a> 
     </c:when> 
     <c:when test="${paging.currentPage==paging.totalPage}"> 
      <a onclick="goPage(1)">首页</a> 
      <a onclick="goPage(${paging.currentPage-1})">上一页</a> 
     </c:when> 
     <c:otherwise> 
      <a onclick="goPage(1)">首页</a> 
      <a onclick="goPage(${paging.currentPage-1})">上一页</a> 
      <a onclick="goPage(${paging.currentPage+1})">下一页</a> 
      <a onclick="goPage(${paging.totalPage})">末页</a> 
     </c:otherwise> 
  </c:choose> 
  </c:if> 
 共 ${paging.total} 条 
</div>  
StringBuilder sb = new StringBuilder(); 
sb.append("SELECT distinct(m.time) "); 
sb.append(" from tbl_monitor m left join tbl_variable v on m.variable = v.id "); 
sb.append(" left join tbl_variable_group g on v.variable_group = g.id "); 
       
sb.append(" where v.active = true and g.active=true "); 
//sb.append(" AND m.variable in " + variableIds); 
sb.append(" AND exists ( select vtemp.id from tbl_variable vtemp where vtemp.selected=true and vtemp.id=m.variable)"); 
sb.append(" AND m.time between " + beginTime + " AND " + endTime ); 
sb.append(" order by m.time asc"); 
Query query = em.createNativeQuery(sb.toString()); 
//满足搜索条件的所有的时间的条数 
int total = query.getResultList().size(); 
tableView.setTotal(total); 
tableView.setTotalPage(total % page.getPageSize() == 0 ? total / page.getPageSize() : (total / page.getPageSize()) + 1); 
query.setFirstResult(from); 
query.setMaxResults(offset); 
timeList = query.getResultList(); 

总结

以上就是本文关于java中对list分页并显示数据到页面实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • 详解基于MybatisPlus两步实现多租户方案

    详解基于MybatisPlus两步实现多租户方案

    这篇文章主要介绍了详解基于MybatisPlus两步实现多租户方案,本文分两步,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • SpringBoot实现二维码扫码登录的原理及项目实践

    SpringBoot实现二维码扫码登录的原理及项目实践

    本文主要介绍了SpringBoot实现二维码扫码登录的原理及项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java实现Excel与TXT文本的高效互转

    Java实现Excel与TXT文本的高效互转

    在日常开发中,我们经常需要在不同的数据存储格式之间进行转换,本文将分享如何在 Java 中高效实现 Excel 与 TXT 的互转,有需要的小伙伴可以了解下
    2025-09-09
  • Java中WeakHashMap和HashMap的区别详解

    Java中WeakHashMap和HashMap的区别详解

    这篇文章主要介绍了Java中WeakHashMap和HashMap的区别详解,WeakHashMap和HashMap一样,WeakHashMap也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以为null,需要的朋友可以参考下
    2023-09-09
  • Java IO之字节输入输出流详解

    Java IO之字节输入输出流详解

    这篇文章主要为大家介绍了Java IO之字节输入输出流,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 使用Java模拟鼠标和键盘的详细操作步骤

    使用Java模拟鼠标和键盘的详细操作步骤

    这篇文章主要介绍了使用Java模拟鼠标和键盘的详细操作步骤,要运行上面提供的Java程序,您需要遵循几个步骤来设置Java环境、编写程序代码,并执行该程序,文中有相关的代码示例,需要的朋友可以参考下
    2024-05-05
  • Spring boot Rabbitmq消息防丢失实践

    Spring boot Rabbitmq消息防丢失实践

    这篇文章主要介绍了Spring boot Rabbitmq消息防丢失实践,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • java数组算法例题代码详解(冒泡排序,选择排序,找最大值、最小值,添加、删除元素等)

    java数组算法例题代码详解(冒泡排序,选择排序,找最大值、最小值,添加、删除元素等)

    这篇文章主要介绍了java数组算法例题代码详解(冒泡排序,选择排序,找最大值、最小值,添加、删除元素等),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Spring Boot与Docker部署实践

    Spring Boot与Docker部署实践

    这篇文章主要介绍了Spring Boot与Docker部署实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Java中Record的应用小结

    Java中Record的应用小结

    Java Record是Java 14引入的不可变数据载体,能自动生成模板代码,下面就来介绍一下Java中Record的应用,感兴趣的可以了解一下
    2025-08-08

最新评论