比较简单的pager-taglib-2.0分页
来源:互联网 发布:vc2010编写c语言程序 编辑:程序博客网 时间:2024/05/05 02:51
使用pager-taglib
将下载的压缩包解压后:将下列文件对应于我们项目中的文件.
WEB-INF/lib/
pager-taglib.jar
新建PageModel类以及修改DAO接口
①PageModel.java
- import java.util.List;
- public class PageModel {
- /**
- * 总记录数
- * */
- private int total;
- /**
- * 当前页的记录集
- * */
- private List datas;
- public int getTotal() {
- return total;
- }
- public void setTotal(int total) {
- this.total = total;
- }
- public List getDatas() {
- return datas;
- }
- public void setDatas(List datas) {
- this.datas = datas;
- }
- }
②修改DAO,增加public PageModel findAllAlarm(int offset, int pagesize)方法,以及实现类. AlarmDao.java
- public interface AlarmDao {
- public void add(Alarm alarm);
- public Alarm getAlarm(Integer id);
- public List getAlarmList();
- public void update(Alarm alarm);
- public void delete(Integer id);
- /**
- *
- * @param offset 从第几条记录开始查询
- * @param pagesize 每页显示多少条记录
- * @return
- */
- public PageModel findAllAlarm(int offset, int pagesize);
- }
③实现接口中方法:AlarmDaoImpl.java
- public PageModel findAllAlarm(int offset, int pagesize) {
- //得到总记录数
- String queryCountHql = "select count(*) from Alarm";
- Query query = getSession().createQuery(queryCountHql);
- int total = ((Long)query.uniqueResult()).intValue();
- List datas = getSession().createQuery("from Alarm")
- .setFirstResult(offset)
- .setMaxResults(pagesize)
- .list();
- //得到结果集
- PageModel pm = new PageModel();
- pm.setTotal(total);
- pm.setDatas(datas);
- return pm;
- }
④.Services层:public PageModel findAllAlarm(int offset, int pagesize);
⑤Services其实现:AlarmManagerImpl.java
- public PageModel findAllAlarm(int offset, int pagesize) {
- // TODO Auto-generated method stub
- return alarmDao.findAllAlarm(offset, pagesize);
- }
四.修改Action,增加分页方法!
- public String pagerTaglib()
- {
- int pagesize=3;
- int offset=0;
- HttpServletRequest request = ServletActionContext.getRequest();
- if(request.getParameter("pager.offset")!=null)
- offset=Integer.parseInt(request.getParameter("pager.offset"));
- PageModel pm=alarmManager.findAllAlarm(offset, pagesize);
- request.setAttribute("pm", pm);
- return "pagertaglib";
- }
修改struts.xml文件
- <action name="pagerTaglib" class="addBean" method="pagerTaglib">
- <result name="success">/list.jsp</result>
- <result name="pagertaglib">/page.jsp</result>
- </action>
五.建立JSP测试页面:page.jsp
注意导入:
JSTL标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
pagertaglib标签:
<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>测试 分页</title>
- </head>
- <body>
- <h1>测试 分页</h1>
- <hr/>
- <table width="778" border="0" cellPadding="0" cellSpacing="1" bgcolor="#6386d6">
- <tr bgcolor="#EFF3F7">
- <TD align="center">ID</TD>
- <TD align="center">内容</TD>
- <TD align="center">时间</TD>
- <TD align="center">相关操作</TD>
- </tr>
- <c:if test="${!empty pm.datas}">
- <c:forEach items="${pm.datas}" var="alarm">
- <tr bgcolor="#EFF3F7">
- <td align="center">${alarm.wid }</td>
- <td align="center">${alarm.wcontent }</td>
- <td align="center">${alarm.wtime}</td>
- <td align="center">
- 修改
- 删除</td>
- </tr>
- </c:forEach>
- </c:if>
- <c:if test="${empty pm.datas}">
- <tr>
- <td colspan="5" align="center" bgcolor="#EFF3F7">
- 没有找到相应的记录
- </td>
- </tr>
- </c:if>
- </table>
- <pg:pager url="pagerTaglib!pagerTaglib" items="${pm.total}" export="currentPageNumber=pageNumber" maxPageItems="3">
- <pg:first>
- <a href="${pageUrl}">首页</a>
- </pg:first>
- <pg:prev>
- <a href="${pageUrl }">上一页</a>
- </pg:prev>
- <pg:pages>
- <c:choose>
- <c:when test="${currentPageNumber eq pageNumber}">
- <font color="red">${pageNumber }</font>
- </c:when>
- <c:otherwise>
- <a href="${pageUrl }">${pageNumber }</a>
- </c:otherwise>
- </c:choose>
- </pg:pages>
- <pg:next>
- <a href="${pageUrl }">下一页</a>
- </pg:next>
- <pg:last>
- <a href="${pageUrl }">尾页</a>
- </pg:last>
- </pg:pager>
- </body>
- </html>
pager-taglib标签库使用:
标签名:简介:参数说明:pg:pager设置分页的总体参数url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数items:总记录数,pager标签正是根据这个值来计算分页参数的
maxPageItems:每页显示的行数,默认为10(不写此标签,你会发现分页的条数在小于10的时候显示不出来一些数据。当大于10的时候则会出现重复的记录!)
maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10pg:first第一页的标签export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 首页第一行的索引值
lastItem - 首页最后一行的索引值pg:pre上一页标签export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 前页第一行的索引值
lastItem - 前页最后一行的索引值pg:next下一页标签export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 下页第一行的索引值
lastItem - 下页最后一行的索引值pg:last最后一页export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 尾页第一行的索引值
lastItem - 尾页最后一行的索引值pg:pages循环输出页码信息export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - pageNumber这个页码指定的那一页的第一行的索引值
lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
六.结果如图:
页面有点难看,这些数据是PowerDesigner生成的测试数据,很难看,呵呵。
至此使用pager-taglib-2.0进行分页就已经完成了!下面上传了文件及Demo.
项目源程序如下,可以直接导入Myeclipse8.6
http://down.51cto.com/data/347159
本文出自 “幽灵柯南的技术blog” 博客,请务必保留此出处http://enetq.blog.51cto.com/479739/622946
- 比较简单的pager-taglib-2.0分页
- pager-taglib分页的使用
- SSH pager-taglib分页的实现 具体使用方法 分页pager
- SSH pager-taglib分页的实现 具体使用方法 分页pager
- SSH pager-taglib分页的实现 具体使用方法 分页pager
- ThreadLocal模式的分页pager-taglib
- S2SH中用pager-taglib进行的分页
- SSH pager-taglib分页的实现
- pager-taglib分页控件的使用总结
- pager-taglib.jar分页的用法
- SSH pager-taglib分页的实现
- pager-taglib分页处理的使用
- pager-taglib的使用(jsp分页)
- pager-taglib分页处理的使用
- 分页框架(Pager-taglib)的使用
- JSP标签的pager-taglib分页标签
- Pager-taglib 2.0分页标签库入门
- 分页pager-taglib使用指南
- 【Visual C++】一些开发心得与调试技巧
- ns学习资料
- Windows下硬盘安装Ubuntu之二--Win7下安装Ubuntu11.10
- 互联网产品用户体验设计的三大定律
- 加载词库小程序
- 比较简单的pager-taglib-2.0分页
- java例程练习(多线程的两种创建方式)
- 一些常用软件的网络端口协议分类介绍
- c++反汇编与逆向分析 小结
- 黑马程序员—11、JAVA基础&网络编程
- 理解堆和栈区别的好文章(摘抄)
- Project——单元测试
- 八大排序 三大查找、、
- Morphia 学习三 自定义注解、转换器