自己实现的百度分页算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
request.setAttribute("pageCount",pageCount);
request.setAttribute("pageStart",pageStart);
request.setAttribute("pageEnd",pageEnd);
pageCount=pageCount/pageSize;
}else{
pageCount=pageCount/pageSize+1;
}
pageNow是传入参数,pageCount是传出参数(getPageCount方法),pageSize内部使用
页码分页显示
3个变量
pageNum每一页显示的页码数和pageSize一样有用你自己定义
}
if(pageNow>pageNum/2+1){
pageStart=pageNow-pageNum/2;
pageEnd=pageNow+pageNum-1;
//当然要保证页码的最大数不超过总的页数
if(pageEnd>pageCount){
pageEnd=pageCount;
}
}
具体程序应用
前台显示
pageStart每一页的页码起始数,由pagNow和pageNum动态计算
pageEnd每一页的页码结尾数,有pageNow和pageNum动态计算
pageStart和pageEnd的计算
/**默认的初始值**/
if(pageNow<=pageNum/2+1{
pageStart=1;
pageEnd=pageNum;
</c:forEach>
后台处理
(1)StringpageNow=request.getParameter("pageNow");
if(pageNow==null){
pageNow="1";
}
(2)执行查询,将查询结果封装在List或Map集合中假设是一个HashMap
HashMap<K,V>resultMap=newHashMap<K,V>();
(3)
根据上面的计算的方法计算pageCount,pageStart,pageEnd
(3)将pageNow,pageCount,pageStart,pageEnd放入Web作用域中
request.setAttribute("resultMap",resultMap);
request.setAttribute("pageNow",pageNow);
上一页:
<c:choose>
<c:whentest="${pageNow>1}">
<ahref="${ServletURL}?pageNow=${pageNow-1}">上一页</a>
</c:when>
<c:otherwise>
<ahref="#">上一页</a>
</c:otherwise>
</c:choose>
<c:otherwise>
<ahref="#">下一页</a>
</c:otherwise>
</c:choose>
页码部分:
<!—(1)定义的自增变量-->
<c:setvar="index" value="0" ></c:set>
<c:forEachbegin="${pageStart}" end="${pageEnd}">
内容显示分页
3个变量
pagSize(每一页显示的记录条数)自己定义
pageNow(当前页)由用户指定,初始默认值为1
pageCount总页数,由pageSize和数据库总记录数决定
公式:
pageCount=select count(*) from记录表;
if(pageCount%pageSize==0){
<!—(1)定义的自增变量,(1),(2)合起来定义一个(i=0,i++)-->
<c:setvar="index" value="${index+1 }"></c:set>
<c:choose>
<!—当前页以文本形式显示-->
<c:whentest="${pageNow==(index+pageStart-1) }">
${pageNow}
</c:when>
<!—非当前页以链接形式显示-->
<c:otherwise>
<பைடு நூலகம்href="${ServletURL}?pageNow=${index+pageStart-1}">
${index+pageStart-1}
</a>
</c:otherwise>
</c:choose>
下一页:
<c:choose>
<!—注意这里的事pageCount-1不是pageEnd也不是pageCount-->
<c:whentest="${pageNow<pageCount-1}">
<ahref="${ServletURL}?pageNow=${pageNow+1 }">下一页</a>
</c:when>
相关文档
最新文档