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 实例- ...
随机推荐
- 提高PHP开发质量的36个方法(精品)
提高PHP开发质量的36个方法 林涛 发表于:2016-3-25 0:00 分类:26点 标签: 62次 1.不要使用相对路径 常常会看到: require_once('../../lib/some_ ...
- Hbase之批量删除数据
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...
- eclips引入Java源代码
window->>preferences->>Java->Installed JRES 如图所示 这是中文本的 点击“Installed JRES”选择如下图所示的jdk ...
- Android 为PopupWindow设置动画效果
首先定义显示效果的动画文件: <?xml version="1.0" encoding="utf-8"?> <set xmlns:androi ...
- CLGeocoder Error Domain=kCLErrorDomain Code=2
使用CLGeocoder解码地址时,遇到错误 Error Domain=kCLErrorDomain Code=2 代码: #pragma mark 跟踪定位代理方法,每次位置发生变化即会执行(只要定 ...
- 【转】 C++ vector用法
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...
- 编程获得CPU的主频
CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed).CPU的主频表示在CPU内数字脉冲信号震荡的速度.主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者 ...
- android内存泄露小谈
在做android的时候,用的语言大部分情况下都是java.以前最开始做的是编译器开发, 大部分情况都是用c语言和x86与arm架构的汇编,后来接触到ios用的是OC.对比之下, 感觉还是java用起 ...
- servlet和web容器之间的关系
Java是一种动态加载和运行的语言.也就是说当应用程序持有一个类的地址(CLASSPATH)和名称(包名和类名)的情况下,可以在程序运行期 间任何时候加载这个类,并创建和使用该类的对象.Servlet ...
- java面试---summay
1:合适的建立索引,数据量比较大的时候,如果频繁的进行修改插入则不建议建立索引! 2:什么时候适合建索引,在什么字段上面建立索引? (被当做查询条件的) 3:什么叫做编译错误,什么叫做运行时异常 能被 ...