统一写一个util来是实现分页:
public static String genPagination(String targetUrl,long totalNum,int currentPage,int pageSize,String param){
long totalPage=totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;
if(totalPage==0){
return "未查询到数据";
}else{
StringBuffer pageCode=new StringBuffer();
pageCode.append("<li><a href='"+targetUrl+"?page=1&"+param+"'>首页</a></li>");
if(currentPage>1){
pageCode.append("<li><a href='"+targetUrl+"?page="+(currentPage-1)+"&"+param+"'>上一页</a></li>");
}else{
pageCode.append("<li class='disabled'><a href='"+targetUrl+"?page="+(currentPage-1)+"&"+param+"'>上一页</a></li>");
}
for(int i=currentPage-2;i<=currentPage+2;i++){
if(i<1||i>totalPage){
continue;
}
if(i==currentPage){
pageCode.append("<li class='active'><a href='"+targetUrl+"?page="+i+"&"+param+"'>"+i+"</a></li>");
}else{
pageCode.append("<li><a href='"+targetUrl+"?page="+i+"&"+param+"'>"+i+"</a></li>");
}
}
if(currentPage<totalPage){
pageCode.append("<li><a href='"+targetUrl+"?page="+(currentPage+1)+"&"+param+"'>下一页</a></li>");
}else{
pageCode.append("<li class='disabled'><a href='"+targetUrl+"?page="+(currentPage+1)+"&"+param+"'>下一页</a></li>");
}
pageCode.append("<li><a href='"+targetUrl+"?page="+totalPage+"&"+param+"'>尾页</a></li>");
return pageCode.toString();
}
}
先算出一共需要几个分页:总记录数除以每页的大小,整除就有多少分页,不整除加一就是页数。
总页数不为0,通过字符串拼接方法:
前后的首页和尾页是固定的,首页就是第一页,尾页就是总页数。
如果当前页就是第一页,那上一页就不能点击,
如果是最后一页,那下一页就不能点击。
中间的页数就是当前页的前后两页,但如果没有前后两页,就不显示。如果是当前页就设置选中效果。