在说这个查询列表标签之前,我认为有必要先看看另一篇文章,查询一条明细数据的标签、查询列表标签,地址就不给出了,应该就在上下一篇。先说一说一个查询分页的页面功能吧,总体的分为3个部分,有查询条件、数据明细、分页控制,其中查询条件理论上也是不可少的,既然有的话,我们在处理查询条件的时候方式也是多种多样的,别的方式就不讨论了,直接上一个最靠谱的,反正在url上进行传递的个人不是很喜欢;另外处理数据明细上要支持逻辑判断;分页控制就比较常见了,给出当前页、共页数,这些参数,都是可以随便调整控制的,参考如下图:
先给出参数定义,根据参数与查询需求给出逻辑实现图,围绕图再介绍一下每个参数的意义,图片参考如下:
参数说明:
sql:查询列表的sql语句,内置了几种查询方式,支持特定的表达式来实现动态查询;
sqlKey:sql语句的映射,可配置sql,然后自己提供映射实现,与sql参数两者选其一中,如果两种参数都有,则优先取本参数;
javaBeanClassName:将查询列表的结果集中的每条数据转换为实体类型对象,可选参数,如为空,则将每条数据转换为map类型;
notDataTip:如果查询无记录时,判定此参数是否存在数据,如果存在数据则使用数据替换标签内容体数据;
pageSize:每页显示的数据量大小,尽量将值设置的与分页栏的下拉框的值一致;
var:将查询出的PageFinder | List>>类型对象存储至pageContext范围内,配合jstl标签进行处理。
使用示例:(只需要给出基本的查询即可,至于分页方式已经封装)
1、导入标签库自不必说
2、查询条件部分,支持提交后的回显,使用form表单post提交
编号:
姓名:
3、查询数据明细部分,表数据比较少,故多查询了几次,注意看下where 1=1 后面的写法是动态查询参数,后续再讲
序号编号姓名操作日期${(pageFinder.page - 1) * pageFinder.pageSize + in.count }${sysMenu.menuId }${sysMenu.menuName }${fn:substring(sysMenu.createDate,0 , 11) }4、分页查询控制栏见上面的ajaxPage.jsp
pageEncoding="utf-8"%>
首页
上一页
下一页
末页
第${pageFinder.page }页 共 ${pageFinder.lastPage } 页,每页${pageFinder.pageSize }项
selected="selected" >10条
selected="selected" >20条
selected="selected" >50条
,共${pageFinder.totalRows }条记录