首页 > 代码库 > pager分页框架体会

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中初始参数指定),有时候会产生不一样的情况。

 

url="${url}" 这个我有疑惑,为啥不是url="${param.url}" ,这样的话会多一个命令出来。

 

export="curPage=pageNumber" 特别注意的是 pageNumber这个东西在不同的标签内部,数值是不一样的,比如当前页数是3,<page:prev>里面的pageNumber就等于2,同样的首页的就永远是1.

而在<pg:pager>中的元素中的pageNumber,指的是当前的页数,用curpage暴露出来,是为了跟<pg:pages>标签中的递增的从1到最大值的所有pageNumber区分开。

pager分页框架体会