使用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() ...
随机推荐
- vmware 新机克隆
选li72 右键点击------管理-----克隆 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlsaTcy/font/5a6L5L2T/fontsi ...
- JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库
. 概要 1.1 JDBC概念 JDBC(Java Database Connectivity)是Java语言为了支持SQL功能而提供的与数据库连接的用户的接口.JDBC中包含了一组由(Java)语言 ...
- 《UNIX级别编程环境》注意读出信号(2)
1.功能sigaction sigaction动与指定信号相关联的处理动作.其函数原型例如以下: #inlcude <signal.h> int sigaction(int signo,c ...
- jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】
1.效果图 2.导入js和css <link rel="stylesheet" href="css/bootstrap/css/bootstrap.min.css& ...
- iOS,Android,.NET通用AES加密算法
原文:iOS,Android,.NET通用AES加密算法 这两天为移动App开发API,结果实现加密验证时碰到一大坑.这里不得不吐槽下又臭又硬的iOS,Windows Server无法解密出正确的结果 ...
- 收藏的一些javascript片段
原文:收藏的一些javascript片段 学习js也很有一段时间,收集了一些js的片段.特地整理排版了一下,以一个js初学者的视界来分析注释了这些代码段,暂且不去讨论它的性能和优化问题,相信会对一些初 ...
- 纠错《COM技术内幕》之ProgID
近期在看<COM技术内幕>,看到第六章时发现该章节在解释ProgID时有点错误,特此记录一下,也给正在学习COM的小伙伴们一个提示. 并且我发现该问题存在于一些非常多大型软件的COM组件中 ...
- 自己定义View之绘制圆环
一.RingView 自己定义的view,构造器必须重写,至于重写哪个方法,參考例如以下: ①假设须要改变View绘制的图像,那么须要重写OnDraw方法.(这也是最经常使用的重写方式.) ②假设须要 ...
- hust1384---The value of F[n]
Description For any integer i>=3 we have F[i]=(F[i-1]+2*F[i-2]+3*F[i-3])%9901; Now give you F[0], ...
- 从头学起android<AutoCompleteTextView文章提示文本框.十九.>
文章提示可以很好的帮助用户输入信息,以方便.在Android它也设置有类似特征,而要实现这个功能需要依靠android.widget.AutoCompleteTextView完毕,此类的继承结构例如以 ...