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 实例- ...
随机推荐
- HTTP Status 500 - An exception occurred processing at line 35
HTTP Status 500 - An exception occurred processing JSP page /manage/addCategory.jsp at line 35 type ...
- 清除数据库中大于10W行的垃圾历史数据
-- =============================================-- Author: <Author,Name,龙鸿轩>-- Create date: &l ...
- er6855的工作经验
1 VIEWS里面的关系要搞清楚 里面的内容类型要理清 不要相信别人做好的事情 不要相信看到的结果 2 git rm -rf之后需要git commit提交到.git文件中正式生效 不然可能就是中间打 ...
- linux 下 `dirname $0`
[`],学名叫“倒引号”, 如果被“倒引号”括起来, 表示里面需要执行的是命令.比如 `dirname $0`, 就表示需要执行 dirname $0 这个命令 [“”] , 被双引号括起来 ...
- 串行通讯之.NET SerialPort异步写数据
目录 第1章说明 2 1 为什么需要异步写数据? 2 2 异步写数据的代码 2 3 源代码 4 第1章说明 1 为什么需要异步写数据? 如下图所示,以波特率300打开一个串口. ...
- java 模板
模板模式: 解决某类事情的步骤有些是固定的,有些是会发生变化的,这时我们提供 一个模板代码,从而提高效率. 模板模式的作用: 1.解决这类事情其中一件的解决方案. 2.分析代码,把发生变化的代码抽象取 ...
- Ubuntu 14.04 分区方案
我磁盘大概还有70多G的空间吧,我全部拿来使用的.真实的双系统哦. 一般来讲,linux系统分区最少要包括/和/swap两个.这样据说会影响性能,没有这样安装过,就无从考证啦.其实就是重装系统的时候, ...
- spring3-hibernate3整合
Spring与Hibernate整合关键点: 1) Hibernate的SessionFactory对象交给Spring创建: 2) hibernate事务交给spring的声明式事务管理. SH整合 ...
- python 写入csv文件
import csv fieldnames = ['Column1', 'Column2', 'Column3', 'Column4'] rows = [{'Column1': '0', 'Col ...
- NCrawler 学习
NCrawler是一款国外的开源网络爬虫软件,遵循LGPL许可协议.其HTML处理使用的是htmlagilitypack开源库,采用xpath的方式处理定位网页元素,十分方便.同时其采用HttpWeb ...