使用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() ...
随机推荐
- JS前端正则表达式学习笔记(转)
1.正则表达式的创建: 方法一:以字面量形式来创建 格式为/pattern/flags;其中pattern(模式)为任何简单或者复杂的表达式,可以包括字符类,限定符,分组,向前查找以及反向引用.每个正 ...
- validform.js使用方法
表单验证之validform.js使用方法 一.validform有什么用? 网页上有大量的input需要你进行验证的时候,如果是弹窗的话,需要不停地判断,如果为空,弹窗.如果不是数字,弹窗. 所以要 ...
- jsp 行动标签
jsp行动标签 签.它影响JSP执行时的功能. 1.include动作标签 <jsp:include page="文件名称字"/> 或 <jsp:include ...
- 网络资源(7) - JAX-WS视频
2014_08_25 http://v.youku.com/v_show/id_XNjMzNDcyMTk2.html 基于JAX-WS编程模型的WebService 1. @WebService注释类 ...
- Poj 3517 And Then There Was One Joseph核心问题
基本上纯Joseph核心问题,只是第一步多一件.m. 然后你就可以用获得的递推公式: Win(n) 代表n当个人的中奖号码, 然后,Win(n)必须相等Win(n-1).当一个人将在下一次删除队列. ...
- MVC中的其他新特性
MVC中的其他新特性 (GlobalImport全局导入功能) 默认新建立的MVC程序中,在Views目录下,新增加了一个_GlobalImport.cshtml文件和_ViewStart.cshtm ...
- 使用SharePoint创建和定义自己的网站页面
使用SharePoint创建和定义自己的网站页面 1. 打开SharePoint Designer 2010. 2. 点击网站页面导航. 3. 在功能区点击Web部件页面,新建Employee.axp ...
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...
- eclipese with gdbserver and Jlink configuration
最近的项目,很感动于linux和gdbserver内容,I think must write something to record it . 各位对不起,图片挂了.. Ok, at first I' ...
- Cracking Microservices practices
微服务最佳实践 英文原文:Cracking Microservices practices 在我还不知道什么叫微服务架构的时候我就使用过它.以前,我写了一些管道程序(pipeline applicat ...