系列文章目录
一、实现分页
然后 ctrl+1智能帮助,你懂的
整体再 单元测试 一下
注意点1:测试的时候一定要测这五个 是否都正常有数据了,但凡有一个没有,都会有bug
注意点2sql语句别写错:
二、实现分页前后端(未添加分页)
现在一切写好了,那么什么时候调用分页这个需求呢?
肯定是在展示所有数据的时候
也就是点击这个的时候
所以我们只要改这个的触发事件就行了
因为之前是查询所有数据出来了
现在我们只要改一下即可
然后是啥呢?
然后是servlet
service
dao
然后实现类
我们的厨师(service)终于有事可干了
然后servlet要调用了
然后将数据存放到域里面,快递过去,并且转发
这里注意前端
显示数据的时候也要调整一下
这样就够了吗?不够
测试一下
实现后台分页(完结)
我们后台管理页面没有页码,这很尴尬,怎么解决呢?
其实就是超链接,样式没有必要自己写,直接用上图(或者其它页面有的)这个就行
这个div 直接一波带走
我们测算一下基本上实现了
但是有些小bug
比如,在末页还可以点下一页、在首页也可以点上一页这两个比较明显的bug
解决办法有很多1
比如使用三元表达式,判断 如果是首页了,就不可以点上一页了
再比如。是首页的时候直接隐藏上一页,用户点不了上一页,这样也可以
测试一下,这里就解决了
上一页下一页完成了,下面是什么呢,下面就是 点击确定跳转到具体的某一页
这样写完之后,我们测试也是没有问题的,但是,有些特殊的地方还是要处理
如果你填的是 -1 页码呢?要怎么处理,或者999999,根本没有这么多页码的页
这样实际上也会引起代码内部,sql查询那块的报错
我们怎么处理呢?
如果是传统的解决方式因为这是前端页面 我们可以使用jquery的正则验证
如果是验证正整数的话 -1等这种负数是可以解决
假如我们输入99999,那也是正整数还是不会报错,这个效果还是不是我们想看到的
所以正则并不能完美解决我们的问题
分析一下我们的程序,大体上就是分为三块:前端页面(jquery)、java程序(三层和包括servletJava代码)最后是 数据库
没错,现在的程序,大部分的问题都可以在jquery里面得到解决
但是要求jquery里面解决不了的问题,我们就要去java程序里面去解决,比如servlet,如果程序还解决不了,最后才考虑数据库
思路很重要
我们可以想到之前的问题,我们为什么要封装?
封装本质上就是为了提高安全性,这里合法其实也是为了安全性
所以我们取值的时候,给pageNo做一个处理
这就是属性封装的意思
注意不调用这个方法是没有数据的
测试看看
总结
整体分页实现,你细品