Flask接口签名sign原理与实例代码浅析
327
2023-02-17
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 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页面:
当前第 ${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(tohttp://tal);
tableView.setTotalPage(total % page.getPboEwqnageSize() == 0 ? total / page.getPageSize() : (total / page.getPageSize()) + 1);
query.setFirstResult(from);
query.setMaxResults(offset);
timeList = query.getResultList();
总结
以上就是本文关于java中对list分页并显示数据到页面实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~