【发布一个分页标签】
来源:互联网 发布:tc简单软件 编辑:程序博客网 时间:2024/05/21 10:28
关于分页,确实是个老生常谈的问题了,见过的用过的分页组件也不少,这些标签和组件要么功能强大但是使用起来
很麻烦;要么功能简单,在多种应用场景下使用起来不是很顺畅。而且自己也不容易对其做扩展和改进。
以前是忙于做项目,没时间写一些组件什么的,现在在带团队搞研发,能借助项目时间写一些常用的公共组件。结合
以往的使用经验,我自己实现了一个相对来说比较方便使用的分页标签,本着共享的精神,特拿出来与大家分享,希望能
帮助到一些人。现在发布的是x-pager-1.0.jar.
我们先来看看分页标签的使用场景有哪些:
1)使用场景:
大多数情况下,我们采用的是ext的grid,利用前台传递的start,limit参数,已经可以支持分页机制。而对于传统的JSP页
面,需要分页的支持时,需要采用分页标签。
目前标签支持的场景有3种:
第一种:通过form提交的查询,这种查询是最常见的,一般有多个参数作为查询条件提交到后台。
第二种:直接请求action的查询,这种查询一般是通过一个菜单或者一个链接,直接进入一个列表页面,而这个
列表页面时需要分页的。
第三种:通过get方式,传递若干参数到某个指定的action或servlet。
2)分页标签的使用步骤:
对于第一种:通过form提交查询:
引入jar包:x-pager-1.0.jar.
用来查询的action必须继承com.tekview.apex.itsm.server.action.common.PagerAction
这个action有个抽象方法:getTotalSize()是必须由子类实现的,这个方法的作用就是根据当前的查询条件返回记录条数
,根据查询条件返回记录条数的方法在dao的基类里已经有了,不需要自己额外写。
调用dao的分页查询方法,需要传递2个参数,start和limit,这两个参数都可以通过this.getStart()和
this.getPageSize()在action里获取。
在提交的form里添加2个隐藏文本:
pageNo - 表示当前页码
pageSize – 表示每页显示条数
<input type="hidden" name="pageNo" id="pageNo" value="1">
<input type="hidden" name="pageSize" id="pageSize" value="5">
在需要展示分页的地方放置分页标签:<itsm:pager formId="listForm" />
只需要传递一个参数:formId,即提交查询的form的id.
例:
<!-- 遍历数据 -->
<c:forEach items="${users}" var="user" varStatus="status">
<li>
<h3>
<font color='blue'> ${status.count}: <c:out
value="${user.name}" /> </font>
</h3>
</li>
<br>
</c:forEach>
<form action="/TestA/index.do" method="POST" id="listForm">
姓名:
<input type="text" name="name">
<input type="hidden" name="pageNo" id="pageNo" value="1">
<input type="hidden" name="pageSize" id="pageSize" value="5">
<html:submit property="query">查询</html:submit>
</form>
<!-- 分页标签 -->
<itsm:pager formId="listForm" />
对于第二种:
用来查询的action还是要继承com.tekview.apex.itsm.server.action.common.PagerAction并实现抽象方法:
getTotalSize()
调用dao的分页查询方法,需要传递2个参数,start和limit,这两个参数都可以通过this.getStart()和
this.getPageSize()在action里获取。
在需要展示分页的地方放置分页标签:<itsm:pager action="/TestA/index.do" />
这里的action是指直接请求的action。如查询一个user列表的action是/itsm/listUser.do,那么这个标签就写为:
<itsm:pager action="/itsm/listUser.do" />
例:
<c:forEach items="${users}" var="user" varStatus="status">
<li>
<h3>
<font color='blue'> ${status.count}: <c:out
value="${user.name}" /> </font>
</h3>
</li>
<br>
</c:forEach>
<itsm:pager action="/itsm/listUser.do" />
对于第三种,其实和第二种一样,唯一不同的只是在action后面加上参数即可。
如,如查询一个user列表的action是/itsm/listUser.do?name=wy,那么这个标签就写为:<oss:pager
action="/TestA/index.do" qparams="name" qvalues="jack" pageSize="15"/>
如果传递多个参数:/itsm/listUser.do?name=wy&status=1
<oss:pager action="/TestA/index.do" qparams="name,status" qvalues="jack,1" pageSize="15"/>
这里的pageSize属性决定了每页以多少条显示。
3)分页的样式:
分页样式目前为:将来会支持样式扩展。通过参数cssClass来自由选择css样式。
下载地址见我空间里的资源,http://download.csdn.net/source/1908856
- 【发布一个分页标签】
- 转载一个分页标签开发
- 我写的一个自定义分页标签
- 一个仿javaeye的自定义分页标签
- 分页标签
- 标签分页
- 标签分页
- 分页标签
- 发布一个通用的数据分页的存储过程
- [置顶] 发布一个 分页条js实现... 很好用啊
- 一个相当好的自定义标签---分页(一)
- 一个相当好的自定义标签---分页(二)
- 一个分页标签,头疼好好久,写出来去大家共享
- 润乾——报表上下各加一个分页标签
- 发布一个分页算法,希望大家一起讨论,彻底解决分页之苦
- .Net分页控件发布
- .Net分页控件发布
- .Net分页控件发布
- 怎样又快又舒服地学英语
- ACE - ACE_Thread, ACE_Thread_Manager
- PHP/MySQL 基础知识集锦一
- XMPP 协议 RFC4622 标准
- Hunting for my job...(2)
- 【发布一个分页标签】
- 医疗信息交换标准HL7
- 查找AD用户
- IMS
- Coolite Toolkit学习笔记系列文章
- 多线程与AO(活动对象)
- GPL和LGPL的区别!
- pci设备的枚举(转)
- 防网易新闻频道右侧新闻滚动效果