第八次作业--MVC2_分页功能.md

结合SERVLET和JSP 实现分页功能
此功能的目的是分页显示数据,也就是说一页只显示部分数据,避免同一页数据过多影响用户体验

参考以下文章:


在粘贴how2java网站上的代码时要注意两个问题。

  • 一个是要把HeroDAO.java文件中对应的数据库,用户名,密码修改为自己的;
  • 另一个是how2java上的servlet配置方法都是用的WEB.XML, 但是上周我们学的是不用WEB.XML的版本。所以HeroListServlet不要直接复制粘贴,而应该
    新建一个servlet文件,只粘贴public class HeroListServlet extends HttpServlet {的内容,并且把相应的import给改掉。因为比如说
    List<Hero> heros = new HeroDAO().list(start, count);这行代码,List需要import java.util.List;,所以需要新引进几个包。

1.只显示5条数据

public List<Hero> list(int start, int count) 

该方法用来控制一页显示五条数据。但是有一个问题我有点疑惑。为什么list(0,5)就是第一页,list(5,5)就是第二页?
以下是* MVC系列教材 (三)- 结合SERVLET和JSP 实现分页功能的解释

start表示开始的个数,count表示取多少条
比如 list(0, 5) , 即表示第一页,每页有5条数据
比如 list(5, 5) , 即表示第二页,每页有5条数据

以下是chatGPT的回答:

当调用list(0, 5)时,它将返回从第一个位置开始的5个元素,这是第一页。当您调用list(5, 5)时,它将返回从第六个元素开始的5个元素,这是第二页。

也就是说,start应该是数据开始条数的下标。下标从0计数。0-4共5条数据,放在第一页。5-9共5条数据,放在第二页。

显示效果:
image

2.下一页

效果:
image
点击下一页后:
image

3.上一页

image
点击上一页后:
image

4.第一页

image
点击首页后:
image
此处表格没有明显变化的原因是当前就在首页。但是可以在地址栏看到多了?start=0。原因是在listHero.jsp增加了<a href="?start=0">[首 页]</a>,
每次点击首页就会跳转到start=0

5.最后一页

逻辑几乎与步骤4一模一样。就是多了需要在HeroListServlet中计算last

image
点击末页后:
image

6.边界处理

目的是为了解决当前是第一页点击上一页看不到数据的问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vvKZ7Aqo-1682238065584)(null)]
注意控制台:我在已经是第一页的情况下多次点击上一页,total保持不变

7. Bootstrap

image
有了Bootstrap的修饰后,明显感觉表格美观了很多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值