使用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> 
时间: 2024-11-19 04:59:31

使用pager进行分页的相关文章

asp.net mvc 简易通用自定义Pager实现分页

asp.net mvc 简易通用自定义Pager实现分页 Intro 一个WEB应用程序中经常会用到数据分页,本文将实现一个简单通用的分页组件,包含一个 PagerModel (用来保存页码信息),一个 HtmlHelper 的 Pager 扩展方法和一个 PagedListModel<T> 分页数据模型. PagerModel 分页模型 PagerModel 用来保存分页信息,代码实现如下: 1 /// <summary> 2 /// PagerModel 分页模型 3 ///

转 分页代码

// pager.demo.js /** * jquery/bootstrap pager. * depends: jquery1.10, boostrap2 * https://code.csdn.net/snippets/146160 * @see: http://blog.csdn.net/win_lin/article/details/17628631 * v 1.0.2 */ ///////////////////////////////////////////////////////

基于Jquery+Ajax+Json+高效分页

首先我们创建一般处理程序,来读取数据库中内容,得到返回值. 创建文件,GetData.ashx. 我这里是用的存储过程,存储过程会再下面粘出来,至于数据只是实例,你们可根据需求自行读取数据 代码如下: <%@ WebHandler Language="C#" Class="GetData"%> using System;using System.Web;using System.Data.SqlClient;using System.Data;using

Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现

pager-taglib分页開始~ 查了好多关于分页的技术,终于选定下面方法实现~ 1.首先下载jar包:pager-taglib.jar,pager-taglib.jar放在WEB-INF/lib文件夹下: 下载地址:http://download.csdn.net/detail/jeofey/8641287 2.将pager-taglib.tld文件放在WEB-INF文件夹下,pager-taglib.tld文件的内容见文章末尾: 3.仅仅粘贴实现分页的关键部分 jsp中: [html] v

基于Jquery+Ajax+Json+存储过程 高效分页

1 CREATE PROCEDURE [dbo].[PAGINATION] 2 @FEILDS VARCHAR(1000),--要显示的字段 3 @PAGE_INDEX INT,--当前页码 4 @PAGE_SIZE INT,--页面大小 5 @ORDERTYPE BIT,--当为0时 则为 desc 当为1 时 asc 6 @ANDWHERE VARCHAR(1000)='',--where语句 不用加where 7 @ORDERFEILD VARCHAR(100), --排序的字段 8 @T

Jquery排序分页插件tablesorter简介

一.简介: Tablesorter?作用于一个标准的HTML表格(有THEAD,TBODY),实现静态排序:主要特点包括: (1) 多列排序: (2) 支持文本.URI地址.数值.货币.浮点数.IP地址.日期.时间以及自定义类型排序: (3) 支持第二个隐藏域排序,例如保持按字母排序时的排序对其他标准(支持两个): (4) 可扩展外观: (5) 程序简小: (6) 支持 TH 元素的 ROWSPAN 和 COLSPAN 属性: (7) 浏览器支持:IE6+,FF2+,Safari2.0+,Ope

(easyui datagrid+mvc+json)之asp.net分页查询

最近在做分页查询的功能,在网上也翻看了不少,但是自己的吸收能力就差了好多,而且当时最大的想法就是,怎么就没有我想要的那种,既是easyui的,又要用mvc的架构,还要能够实现底层的分页传值,用.net平台写的demo,那时就想,等我做出来了,我也要写一篇分页查询的博客,专门为了实现这种需求来做的demo. 效果图 前台view <table id="list_data" class="easyui-datagrid" style="width:107

YII框架CGridView分页实现

C控制器层 $model = new User('search'); $model->unsetAttributes(); $dataProvider = $model->search(); $this->render('company',array( 'dataProvider'=>$dataProvider, 'model'=>$model, )); 解释:$model->unsetAttributes();将属性置空: V视图层 $this->widget(

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页

上一节我们讲了,DataGrid获取数据的一些用法,这一节讲DataGrid的分页 DataGrid将传递“当前页码”“每页条数” 控制器获取参数之后交给BLL层处理逻辑和分页,返回总页数和当前页的数据 最后交给DataGrid处理 课外:从此次前端的处理速度我看出,没有以前的JQGrid控件的处理数据快. 首先在让DataGrid支持分页,我们需要加入几个属性 是否启用分页:pagination 默认是false 每页数量:pageSize 默认10 可选择每页数量:pageList 默认[1