求JSP自定义分页标签的思路,请详细介绍一下想法的流程。谢谢

解决方案 »

  1.   

    <page pageSize="自定义每页数量">在page对应类中的doendtag方法中进行分页算法处理 为content标签做准备
    pagesize pageNumber total等变量封装好放在pagecontext范围中
    <content index="数组循环的index">在content对应类中进行控制判断 如果当前循环的index属于当前页号就继续循环 否则跳过此循环(不在页面显示)并且在每次循环后total++
    循环体内容
    </content>
    <page>
    <control/>上一页 下一页 首页 最后一页等控制控件摆放 在control对应类中写一个字符串 将上一页 下一页等控制分页控件写进去 以JSPWriter流向页面输出字符串生成控件(在字符串中生成的控件一定要有form 当点击上一页等控件提交请求获得新的分页信息)
    所有使用的参数放在pagecontext范围中
    最主要的就是在content类中的控制方法 如果当前循环的index在当前页号就向页面输出信息 否则循环继续 但是在向页面输出信息时会跳过这些信息 比如每页分20条 循环的index是15的话说明在第一页中 循环继续 (如果使用<%循环的话index需要+1%>,如果使用c:forEach的话直接使count即可) 如果循环到了第21个 就不在第一页了 循环继续  但是循环中的内容不向页面输出
      

  2.   

    <%@ taglib uri="/WEB-INF/tlds/page.tld" prefix="p" %>
    <p:paginate pageIndex="${pageIndex}" resultCount="${resultCount}" pageSize="${pageSize}" />
      

  3.   

    后台标签实现类:
    1、写一个类,如:PagingTag,接受两个参数:页大小,当前页号
    2、PagingTag调用业务类检索数据,根据当前页号计算应该从第多少条记录显起,将记录集滚动到位
    3、取出和页大小相同数量的记录,返回前台
    前台:
    1、遍历结果集,现实当前页的数据
    2、在下方生成 首页 上一页 下一页 尾页 的链接,链接上的URL参数,根据上次请求的“当前页号”计算好,传给后台。