java web 中分页技术
来源:互联网 发布:小黑瓶和小棕瓶 知乎 编辑:程序博客网 时间:2024/05/29 15:38
java web中的分页技术,就是显示用户查询的数据的时候,规定每页显示多少条数据,
即如下所示:
这样的话,用户可以自己选择要查看哪一页,更加的人性化,一次只查询一页,不用查询所有页,
<1>首先分页得知道当前页码(pagecode),由用户选定,然后提交给后台,默认为第一页,
<2>其次得知道总页数(totalpages),总页数可以通过总记录数/每页的记录数得到,
<3>总记录数(totalrecord)可以通过执行sql语句(select count(*) from customer)得到,
<4>每页记录数由用户决定,然后就可以计算出总页数,
<5>还得知道当前页数据(beanutils),通过执行sql语句(select * from customer limit x,y);
把这些属性封装到一个pagebean中,首先可以得到首页 上一页 下一页 尾页
在jsp中显示为:
<c:forEach items="${pb.beanList}" var="cstm"><tr><td>${cstm.cname}</td><td>${cstm.gender}</td><td>${cstm.birthday}</td><td>${cstm.cellphone}</td><td>${cstm.email}</td><td>${cstm.description}</td><td><a href="<c:url value='/servlet/CustomerServlet?method=preEdit&cid=${cstm.cid}'/>">编辑</a><a href="<c:url value='/msg.jsp'/>">删除</a></td></tr></c:forEach>
<center>第${pb.pc}页/共${pb.tp}页<a href="<c:url value='/servlet/CustomerServlet?method=findAll&pc=1'/>">首页</a><c:if test="${pb.pc>1}"><a href="<c:url value='/servlet/CustomerServlet?method=findAll&pc=${pb.pc-1}'/>">上一页</a></c:if><c:if test="${pb.pc<pb.tp}"><a href="<c:url value='/servlet/CustomerServlet?method=findAll&pc=${pb.pc+1}'/>">下一页</a></c:if><a href="<c:url value='/servlet/CustomerServlet?method=findAll&pc=${pb.tp}'/>">尾页</a></center>在servlet中如下
public String findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //得到pc(当前页码)int pc = getPc(request);//设定psint ps = 10;//设定每页记录为10//调用service,得到pageBeanPageBean<Customer> pb = customerservice.findAll(pc,ps);//保存到request域中request.setAttribute("pb", pb);//转发到list.jspreturn "f:/list.jsp";}
在dao中如下:
public PageBean<Customer> findAll(int pc,int ps){try{//得到PageBean对象pbPageBean<Customer> pb = new PageBean<Customer>();//把pc,ps设置给pbpb.setPc(pc);pb.setPs(ps);//得到tr,设置给pbString sql = "select count(*) from t_customer";Number num = (Number)qr.query(sql, new ScalarHandler());int tr = num.intValue();pb.setTr(tr);sql = "select * from t_customer order by cname limit ?,?";List<Customer> beanList = qr.query(sql, new BeanListHandler<Customer>(Customer.class),(pc-1)*ps,ps);pb.setBeanList(beanList);return pb;}catch(SQLException e){throw new RuntimeException(e);}}
其次为了显示页码列表,规定最多显示10个页码,当前页在页码中的位置为6,则begin=当前页-5,end=当前页+4;
其中特殊情况为总页数小于10,则begin=1,end=总页数
头溢出:当begin<1时,让begin=1;
尾溢出:当end>总页数时,end=总页数
代码如下:
<c:choose><c:when test="${pb.tp<10}"><c:set var="begin" value="1"></c:set><c:set var="end" value="${pb.tp}"></c:set></c:when><c:otherwise><c:set var="begin" value="${pb.pc-5}"></c:set><c:set var="end" value="${pb.pc+4}"></c:set><!-- 头溢出 --><c:if test="${begin<1}"><c:set var="begin" value="1"></c:set><c:set var="end" value="10"></c:set></c:if><!-- 尾溢出 --><c:if test="${end>pb.tp}"><c:set var="begin" value="${pb.tp-9}"></c:set><c:set var="end" value="${pb.tp}"></c:set></c:if></c:otherwise></c:choose><!-- 循环显示页码列表 --><c:forEach var="i" begin="${begin}" end="${end}"><c:choose><c:when test="${i eq pb.pc}">[${i}]</c:when><c:otherwise>
0 0
- java web 中分页技术
- Java.Web - 分页技术
- Java web 分页技术
- Java Web 分页技术
- java web 分页技术
- 对Java web中分页技术的浅析
- java web 分页技术总结
- java Web 分页技术总结
- java web 分页技术总结
- JAVA WEB 实现分页技术
- web应用分页技术
- web分页技术
- Web分页技术
- WEB实现分页技术
- web分页技术
- java web 一个好用的前台分页技术
- oracle与WEB分页技术
- Web开发之分页技术
- 将linux默认python升级到2.7.4版本
- 算法——大整数乘法
- 手斧Linux – 从LFS到Funtoo (37)
- 自定义上滑菜单SlidingUpMenu
- 常用GCC命令
- java web 中分页技术
- u-boot2010.03 第一阶段--start.S
- 实验二:FFT算法的MATLAB实现
- Nagios和cacti
- 有两个数组a,b,大小都为n,;通过交换a,b中的元素,使sum(a)-sum(b)最小
- VB中错误处理On Error的应用
- JAVA基础第五天 (15-6-23)
- 数据结构——Stack和Queue的互相实现
- DayDayUP_Linux运维学习_mysql安装(源码编译安装)