重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

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

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

创新互联主营石河子网站建设的网络公司,主营网站建设方案,app软件定制开发,石河子h5小程序制作搭建,石河子网站营销推广欢迎石河子等地区企业咨询

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 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页面:

 
 
 
${upl.name1 } ${upl.name2 } ${upl.name3 }
当前第 ${paging.currentPage } 页/共 ${paging.totalPage} 页 首页 上一页 下一页 末页 首页 上一页 首页 上一页 下一页 末页 共 ${paging.total} 条
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分页并显示数据到页面实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!


网站栏目:java中对list分页并显示数据到页面实例代码
网页URL:http://cqcxhl.com/article/pgdipj.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP