使用pager进行分页
pager jar网址:http://java2s.com/Code/Jar/t/Downloadtaglibspagejar.htm
package com.binary.entity;
import java.util.List;
public class PageModel<T> {
private long total;//页数
private List<T> dates;//当前页的数据
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<T> getDates() {
return dates;
}
public void setDates(List<T> dates) {
this.dates = dates;
}
}
package com.binary.entity;
public class Pager {
private int offset;//offset表示从那一页开始记录
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
}
package com.binary.entity; import java.util.HashSet;
import java.util.Set; /**
* User entity. @author MyEclipse Persistence Tools
*/ public class User implements java.io.Serializable { // Fields private Integer id;
private String uname;
private String upass;
private String meun; // Constructors /** default constructor */
public User() {
} /** minimal constructor */
public User(String meun) {
this.meun = meun;
} /** full constructor */
public User(String uname, String upass, String meun, Set meuns) {
this.uname = uname;
this.upass = upass;
this.meun = meun;
} // Property accessors public Integer getId() {
return this.id;
} public void setId(Integer id) {
this.id = id;
} public String getUname() {
return this.uname;
} public void setUname(String uname) {
this.uname = uname;
} public String getUpass() {
return this.upass;
} public void setUpass(String upass) {
this.upass = upass;
} public String getMeun() {
return this.meun;
} public void setMeun(String meun) {
this.meun = meun;
} }
import java.util.List; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; import com.binary.entity.PageModel;
import com.binary.entity.User; public class UserDao { public PageModel<User> getUsers(int offset,int maxResult) {
Configuration cf=new Configuration().configure();
SessionFactory sf=cf.buildSessionFactory();
Session session=sf.openSession();
Query q= session.createQuery("from User");
PageModel<User> users=new PageModel<User>();
users.setTotal(q.list().size());
q.setFirstResult(offset);
q.setMaxResults(maxResult); users.setDates(q.list());
session.close();
return users;
}
}
package com.dan.biz; import com.binary.entity.PageModel;
import com.binary.entity.User;
import com.dan.dao.UserDao; public class UserBiz { public PageModel<User> getUsers(int offset,int maxResult) {
return new UserDao().getUsers(offset, maxResult);
}
}
package com.dan.action; import org.apache.struts2.ServletActionContext; import com.binary.entity.PageModel;
import com.binary.entity.Pager;
import com.binary.entity.User;
import com.dan.biz.UserBiz;
import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private Pager pager=new Pager();//存放偏移量
private int numPerPage=2;//每页的数据量
private long totalCount;//总页数
private String str; public String getStr() {
return str;
} public void setStr(String str) {
this.str = str;
} public Pager getPager() {
return pager;
} public void setPager(Pager pager) {
this.pager = pager;
} public int getNumPerPage() {
return numPerPage;
} public void setNumPerPage(int numPerPage) {
this.numPerPage = numPerPage;
} public long getTotalCount() {
return totalCount;
} public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
} public String execute() {
System.out.println(str);
UserBiz biz=new UserBiz();
PageModel<User> users=biz.getUsers(pager.getOffset(), numPerPage);
totalCount=users.getTotal();
ServletActionContext.getRequest().setAttribute("user", users.getDates());
return SUCCESS;
}
}
page.tag封装成tag标签
<%@tag pageEncoding="utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="pg" uri="/WEB-INF/lib/pager-taglib.jar" %>
<%@attribute name="color" required="true" %>
<%@attribute name="totalCount" required="true" rtexprvalue="true" %>
<%@attribute name="numPerPage" required="true" rtexprvalue="true" %> <pg:pager items="${totalCount }" url="user" export="currentPageNumber=pageNumber"
maxPageItems="${numPerPage }" maxIndexPages="5"> <pg:first>
<a href="${pageUrl }">首页</a>
</pg:first>
<pg:prev>
<a href="${pageUrl }">前页</a>
</pg:prev>
<pg:pages>
<c:choose>
<c:when test="${pageNumber == currentPageNumber}">
<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 }&str=aaaa">下一页</a> </pg:next>
<pg:last>
<a href="${pageUrl }">尾页</a>
</pg:last>
${pageUrl } </pg:pager>
jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="pg" uri="/WEB-INF/lib/pager-taglib.jar" %>
<%@ taglib prefix="page" tagdir="/WEB-INF/tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> </head>
<body>
<c:forEach items="${user }" var="u">
${u.uname }
</c:forEach> <page:page color="red" numPerPage="${numPerPage }" totalCount="${totalCount }"></page:page>
</body>
</html>
使用pager进行分页的更多相关文章
- asp.net mvc 简易通用自定义Pager实现分页
asp.net mvc 自定义Pager实现分页 Intro 一个WEB应用程序中经常会用到数据分页,本文将实现一个简单通用的分页组件,包含一个 PagerModel (用来保存页码信息),一个 Ht ...
- jQuery +ajax +json+实现分页
正文 首先我们创建一般处理程序,来读取数据库中内容,得到返回值. 创建文件,GetData.ashx. 我这里是用的存储过程,存储过程会再下面粘出来,至于数据只是实例,你们可根据需求自行读取数据 代码 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页
系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...
- 基于Jquery+Ajax+Json+高效分页
摘要 分页我相信大家存储过程分页已经很熟悉了,ajax更是耳熟能详了,更别说我们的json,等等. 如果说您没用过这些东东的话,我相信看完这篇博文会对您有帮助的,,如果有任何问题不懂或者有bug没问题 ...
- Hibernate分页查询小结
通常使用的Hibernate通常是三种:hql查询,QBC查询和QBE查询: 1.QBE(Qurey By Example)检索方式 QBE 是最简单的,但是功能也是最弱的,QBE的功能不是特别强大, ...
- 使用MvcPager实现Ajax分页
接触ASP.NET MVC的时间不长,这段时间做东西的时候要用到分页,但是普通的分页用户体验不是很好,所以想实现无刷新的分页. 在网上找了好多例子,但是感觉都封装的不好,不小心发现了Webdiyer. ...
- ASP.NET MVC 分页问题
在使用Ajax.Pager进行分页的时候需要注意一下几个方面: 1.一定要引入jquery.unobtrusive-ajax.min.js这个js: 2.一定要在页面中使用注册分页器,注册方法:@{H ...
- 基于Jquery+Ajax+Json+存储过程 高效分页
在做后台开发中,都会有大量的列表展示,下面给大家给大家分享一套基于Jquery+Ajax+Json+存储过程高效分页列表,只需要传递几个参数即可.当然代码也有改进的地方,如果大家有更好的方法,愿留下宝 ...
- YII框架CGridView分页实现
C控制器层 $model = new User('search'); $model->unsetAttributes(); $dataProvider = $model->search() ...
随机推荐
- Windows平台Oracle使用USE_SHARED_SOCKET角色
前两天在一个朋友QQ集团提出了一个问题.背景例如,下面的: 继续问后,有例如以下回复: 1.对方server连接无问题. 2.从client能够telnetserver的1521port. 3.tns ...
- 浙江大学PAT考试1069~1072(2013-11-2)
11 题目地址:http://pat.zju.edu.cn/contests/pat-a-practise 1069: 由下降序和上升序两个四位数不断相减,然后得到新数据,始终会到达一个数字终止. 递 ...
- JQuery插件开发初探——结构熟悉
工作之余,对Jquery插件做了一点尝试,想着之前总用别人写的插件,自己要是也写一个用岂不是很cool.于是说干就干,动手开始写. 首先是模仿,从一个简单的功能进行入手,了解一下插件开发的流程和结构. ...
- JavaEE(5) - JMS实现企业Pub-Sub消息处理
1. 在Weblogic服务器上配置Pub-Sub消息目的 向已有的JMS模块中添加消息主题: Services-->Messaging-->JMS Modules--><Mo ...
- open-flash-chart2各种效果
<pre class="html" name="code"><pre class="html" name="co ...
- 开源项目:底部动作条(BottomSheet)
底部动作条(BottomSheet)是一个从屏幕底部边缘向上滑出的一个面板,给用户呈现一组功能选项.底部动作条封装了一组简单.清晰.无需额外说明的操作.底部动作条(如下图)可以是列表样式的,也可以是宫 ...
- javascript 的Date 格式化, 模仿shell中date命令的格式
原文:javascript 的Date 格式化, 模仿shell中date命令的格式 shell 中显示当前的日期 [root@localhost]$ date '+%Y-%m-%d %H:%M:%S ...
- HDU 2048 号码塔(DP)
号码塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 多普勒失真信号采样Matlab模拟分析
多普勒失真信号采样Matlab模拟分析 方案 水声通信指的是使用声信号在水中数据传输. 相对而言.电磁信号在水中吸收严重衰减过快,光信号受水中悬浮颗粒的影响,也无法完毕远距离传输. 这两种信号的传播距 ...
- 第20章 状态模式(State Pattern)
原文 第20章 状态模式(State Pattern) 状态模式 概述: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表 ...