pager分页框架体会
<pg:pager> 元素的属性中:
maxPageItems说的是每页偏移量是多少,这个并不是说每一页显示多少,而是第二页比第一页来说,在第一页的尾部增加多少,第一页又被覆盖多少,是决定每一次加多少,pageOffset=(页数-1)*maxPageItems。
而每一页迭代显示多少是由pagesize决定的,也就是一次在数据库取出多少条数据。
而pageOffset通过request和threadLocal传进去,决定了从哪个位置开始取pagesize个对象。
items="${param.items}" items的数值是 按照条件筛选的同一个sql语句但是没有加limit得到的总数,也就是符合这个筛选条件所有的对象数目,是总记录数totalRecord;
Pager框架根据这个数值和pageOffset决定总页数,totalpage=(totalRecord-1)/pageOffset +1; 其实本来没有这个框架的时候 ,pageoffset是由pagesize和pageIndex决定的,但是有这个框架之后
每页偏移量和pagesize是分别指定的(一个在pager框架配置中,一个在和treadlocal相关的filter中初始参数指定),有时候会产生不一样的情况。所以尽量maxPageItems=${param.pageSize}
url="${url}" 这个我有疑惑,为啥不是url="${param.url}" ,这样的话会多一个命令出来。
export="curPage=pageNumber" 特别注意的是 pageNumber这个东西在不同的标签内部,数值是不一样的,比如当前页数是3,<page:prev>里面的pageNumber就等于2,同样的首页的就永远是1.
而在<pg:pager>中的元素中的pageNumber,指的是当前的页数,用curpage暴露出来,是为了跟<pg:pages>标签中的递增的从1到最大值的所有pageNumber区分开。
传值传参数的问题:在include页面输入参数值和参数name,在pager页面得到${参数name}就是得到参数值,<pg:param name=${param.参数name}就意思是得到了在这次请求中,以这个参数值为名称的,通过参数传递进来的属性,其实也可以直接把参数值写到param name=后面,但是这样写就会僵化,因为page框架不止要被现在的这一个页面包含,而要以后被不同的页面包含,这样通过jspinclude再传一个参数,就可以达到解耦和的目的。
如果一次传过来多个参数,可以在jspinclude里面吧多个参数名字用“,”隔开,在pager框架中用c:foreach迭代取出。就会把所有的参数都在分页的时候加上了。
pager分页框架体会的更多相关文章
- 分页框架pager-taglib学习笔记
说到分页其实可以研究一下我自己项目里面的分页框架的使用. 下面的笔记来自于孔浩老师的视频教程和我自己的开发实践. 使用Pager-taglib可以帮助我们快速开发分页处理. 下载:pager-tagl ...
- 如何使用前端分页框架bootstrap paginator
前端分页框架bootstrap paginator用于web前端页面快速实现美观大方的翻页功能.在实现交互良好的页面翻页功能时,往往还需要配合使用后端分页框架pagehelper.pagehelper ...
- 自己写的一个Pager分页组件,WebForm,Mvc都适用
我一说写这个功能的时候,好多人估计有疑问.分页功能网上多的是,搜一个不就行了,你这样不是浪费时间么.你说这句话的时候,我是比较信的,首先自己写一些东西是很耗时,有这些时间又能多打几盘LOL了.但是我觉 ...
- ThinkPHP 3.2.3 Pager分页
不是很喜欢TP的分页类,因为生成的分页url感觉有点不好理解,例如访问路径xxxx/home/show.html,在模板输出分页后,例如产生了页码,页码链接的路径会变成xxxx/home/show/p ...
- JS案例之1——pager 分页
学习JS大半年之久,第一次自己尝试写一些小插件,写法参考网上某位牛人写代码的思路. 此处代码写的是静态分页.如果需动态分页,还可以修改下.第一次写,还有很多地方可以优化.希望各位大牛踊跃拍砖. 预览图 ...
- Vue Element Tabe Pager 分页方案
表格和分页分离的,但是使用中,却是结合在一起的. 分析 有以下方式触发查询: mounted 加载数据. 查询按钮 加载数据. pager 变化加载数据 加载数据函数: loadData 问题 mou ...
- Pager分页
分页组件: /// <summary> /// 分页组件 /// </summary> public class PagerHelper { /// <summary&g ...
- asp.net mvc多条件+分页查询解决方案
开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...
- 【Bootstrap】Bootstrap和Java分页-第二篇
目录 关于此文 配置xml-pager.tld 分页控件-Pager 分页action集成类-BaseController 实例-Dao 实例-service 实例-action 实例-JSP 实例- ...
随机推荐
- phalcon: 官方多模块
目录结构如下 public/index.php: use Phalcon\Mvc\Router; use Phalcon\Tag; use Phalcon\Mvc\Url; use Phalcon\M ...
- jquery 设置checked="checked"无效,radio未选中。。
jquery 设置checked="checked"无效,radio未选中.. 最好还是使用.prop(),在jQuery1.6版本之前.attr存在一些bug.在1.6之后它会自 ...
- Canu Quick Start(快速使用Canu)
Canu Quick Start Canu Quick Start PBcR (老版的canu) CA Canu specializes in(专门从事) assembling PacBio or O ...
- VB6 GDI+ 入门教程[7] Graphics 其他内容
http://vistaswx.com/blog/article/category/tutorial/page/2 VB6 GDI+ 入门教程[7] Graphics 其他内容 2009 年 9 月 ...
- java写的简单通用线程池demo
首先声明,代码部分来自网络. 1.入口DabianTest: package com.lbh.myThreadPool; import java.util.ArrayList; import java ...
- 将自定义的 service provider 绑定到 IOC 容器
首先要有一些类,可以自己自定义一些类放在app/目录下的自己新建的文件夹,在类里面实现代码逻辑 然后通过命令生成serviceprovider (php artisan make:provider ...
- 《C#开发微信门户及应用》
C#开发微信门户及应用(40)--使用微信JSAPI实现微信支付功能 C#开发微信门户及应用(39)--使用微信JSSDK实现签到的功能 C#开发微信门户及应用(38)--微信摇一摇红包功能 C#开发 ...
- jq实现全选非全选
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 《Java程序设计》第五周学习总结
20145224 <Java程序设计>第五周学习总结 教材学习内容总结 第八章异常处理 8.1.1使用try.catch ·教材范例用户连续输入整数,输入0结束后显示输入数的平均值(代码如 ...
- 《构建之法》第8、9、10章读后感和Sprint总结
<构建之法>第8.9.10章读后感 第八章重点讲了需求分析,在一个项目中,需求分析是最基础也是最重要的,只有充分了解了用户需求,我们才不会走弯路,才能做出正确的规划,保证项目的进行是按照 ...