- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 分 页 显 示 8.1 用户管理的分页显示 8.1.1 功能描述 假设每次只显示10个用户,这10个用户使用表格显示。在表格的上面或者下面添加分页显示的功能。每一页包括提示信息,即共有多少页,这是第几页;包括4个超链接,可以链接到第一页、上一页、下一页和最后一页(如果已经在第一页了,则不能使用“上一页”和“第一页”超链接。如果已经在最后一页了,则不能使用“下一页”和“最后一页”超链接);还包括一个输入框和按钮,可以直接跳转到某一页。 8.1.2 运行效果 第一次访问的时候,默认显示第一页,如图8.1所示。其中,“第一页”和“上一页”超链接不能使用。 当点击下一页的时候,会显示第二页的内容,而且4个超链接都可以使用,如图8.2所示。 图8.1 第一页 图8.2 不是第一页也不是最后页 图8.3 最后页 8.1.3 思路分析 分页显示与显示全部记录的功能相比,相同之处是同样都需要先得到所有的数据。不同之处在于,后者显示所有记录,前者显示部分记录。 如何控制只显示部分记录呢?这就需要知道要显示哪一部分记录,也就是从哪条记录开始显示,显示到哪条记录。要想知道要显示哪些记录,就需要知道每次显示多少记录,要显示第几页,有了这些信息才能算出从哪条记录开始显示,显示到哪条记录。所以这里需要知道两项信息:每页显示的记录数和显示第几页。 每页显示的记录数通常是定义好的,直接使用即可。显示第几页则是动态的,第一次没有人告诉你显示第几页,就显示第一页,以后显示第几页需要用户选择(通过超链接)或者输入(输入框和按钮)。 所以需要设计传递页码的“第一页”、“上一页”、“下一页”和“最后一页”以及输入框等。 另外,前面提到要显示“共有多少页”,需要根据总的记录数以及每页显示的记录数进行计算。最后一页的控制也需要知道共有多少页。 分页显示要显示部分数据,可以有三种处理方式:第一种,把所有信息全部查询出来,然后在显示的时候进行控制;第二种,只把要显示的信息返回给界面,在界面上不用控制;第三种,只查询满足条件的记录(例如第11条记录到第20条记录),通过查询语句进行控制。 对于第三种方式,不同的数据库的支持是不相同的,并且通常比较复杂,所以本书只讨论前两种方式。下面是MySQL数据库提供的实现方式: select * from usertable limit m,n 其中,m是要显示的第一条记录,n是要显示的最后一条记录。 8.2 在界面完成分页控制 在界面完成分页控制,也就是在循环显示的时候进行控制。前面介绍的显示信息的代码是通过c:forEach控制的,所以需要在c:forEach中添加代码,只显示满足条件的记录。c:forEach标签提供了两个属性begin和end,可以控制集合中的记录从什么地方开始显示以及显示到什么地方结束。 另外在分页控制的时候需要得到总的页数,而总的页数是由总的记录数决定的,所以需要在UserBean中添加一个方法。 要在界面上完成分页控制,需要完成下面的修改: (1) 修改UserBean,添加一个获取总页数的方法; (2) 修改FindAllUserServlet,添加调用获取总页数的方法的代码以及传递总页数的代码; (3) 修改userlist.jsp,添加页码控制的代码(上一页、下一页、最后一页和第一页等的控制代码),以及控制信息显示的代码。 8.2.1 修改UserBean.java 在UserBean中添加一个方法,该方法用于获取记录数。得到数据库中记录数的过程与查询所有用户信息的过程是相同的,只是SQL语句不同,最后得到的结果集不同。 SQL语句是: select count(*) from usertable 结果集只有一行一列,所以遍历和取值比较简单。只要将指针指向第一行,然后取出第一列内容即可,代码如下: rs.next(); int n = rs.getInt(1); 然后根据记录数计算页数,假设每页显示10条记录,则页数为: pageCount = (n-1)/10+1; 获取总页数的方法如下: public Integer getPageCount() { int pageCount=1; // 连接对象 Connection con=null; // 语句对象 Statement stmt=null; // 结果集对象 ResultSet rs=nul
您可能关注的文档
- (FPGA数字信号处理设计流程System Generator入门与提高)第1章FPGA硬件结构.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第2章数字信号处理的基本知识.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第3章SystemGenerator概述.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第5章图形化工程设计流程及实现.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第6章应用实例.ppt
- (GPS基本原理及其Matlab仿真)第1章绪论.ppt
- (GPS基本原理及其Matlab仿真)第3章GPS的坐标、时间系统和卫星的运动.ppt
- (GPS基本原理及其Matlab仿真)第4章GPS卫星的导航定位信号.ppt
- (GPS基本原理及其Matlab仿真)第5章GPS卫星信号的捕获.ppt
- (GPS基本原理及其Matlab仿真)第6章GPS卫星信号的跟踪.ppt
最近下载
- 云南镇沅金矿石浮选试验报告.doc VIP
- 大型载重车辆“油改气”项目方案介绍.pdf VIP
- 四上语文1-8单元高频考点通关检测(8页).pdf VIP
- 水泥化学分析习题及答案.doc VIP
- 2022年南京信息职业技术学院高职单招语文/数学/英语考试题库含答案解析.docx VIP
- 广东省广州市南沙区2023-2024学年八年级上学期期末考试英语试题(含答案).docx VIP
- 平面的基本性质及推论多媒体教学课件.ppt VIP
- 【复旦大学-高级病理生理学学习】_模式识别受体_20200425234131.pdf VIP
- 高中数学《函数的奇偶性》说课稿新人教A版必修1 .pdf VIP
- 膈肌膨升症麻醉病例讨论.ppt VIP
原创力文档


文档评论(0)