JavaWeb 带条件的分页查询
最终效果图
注意:没有带条件的时候 默认的是第一页数据
条件是组合的 sql->sql的动态变换
注意第二次查询的时候回显问题 就是填完条件后显示完当页数据ok 但是我点击第二页的时候条件还存在着
此时ListSerevlet不仅要拿到页码 页容量 还要拿到三个条件参数
封装一下条件 使得它称为一个条件类
然后把参数封装成一个条件对象
换一下email
去空格 .trim()
获取数据完毕
%在servlet里拼接的话,那么Dao里写的非空判断就一定是不为空的 -> %是字符串
作业:扩展:动态排序 orderBy(在条件类中加一个排序列 和排序方式)
前端往实体类传值,传完之后在dao写判断,也是拼接sql
但是此时?的个数我们是不知道的,怎么给(pageIndex - 1)*page.size()赋值呢
最好有两个,最多有6个
数组要长度 -> 所以我们用list ArrayList也是有序的
如果?有了我就往paramList里面添加参数
使得?的顺序是和我们参数的顺序是一致的
这个参数呢?
//把list转换为一个数组 toArray();
count()函数里加之前的if判断
if代码重复 封装 -> 拼接sql方法
为什么不返回呢?l(userCondition3sql, paramList);都是引用数据类型,类类
型数据,他们拼接修改之后指向了堆里面的同一块空间,所以不需用返回。
前端处理
换一下:
或者
那为什么点击第二页会报错空指针异常呢?
因为前端传的name address等等数据都是空的,null调方法肯定啦
回显:点击刷新完之后,之前填写的数据依然在表单在存在!!!
都加上
我们是转发进行的的跳转 我们可以把条件对象保存到request域
有个问题:选择完条件之后,第二页没有带条件过去 导致点击第二页查询时不是查询结果所要的,只有第一页才显示满足条件的数据
我点击第二页应该是把表单进行提交 把之前的查询结果一起带到第二页
加上trim()