1.定义一个page类,里面包括每一个的数量,当前页码,总记录数,等

2.将page对象传入dao中,dao输出分页查询好的数据。返回到action中,action放到request中,jsp从request中获取

3.jsp传一个curPageNum到action中,action设置好page对象,传给dao查询

page类

 /**
* 用于分页显示
* @author GXF
*
*/
public class Page {
private int pageSize = 10; //每一页显示大小,默认为10
private int totalNum; //记录总数
private int pageNums; //一共有多少页
private int curPageNum; //当前页页号 public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public int getPageNums() {
return pageNums;
}
public void setPageNums(int pageNums) {
this.pageNums = pageNums;
}
public int getCurPageNum() {
return curPageNum;
}
public void setCurPageNum(int curPageNum) {
this.curPageNum = curPageNum;
} }

Dao类的方法

 /**
* 分页查询
* @param page
* @return
*/
public List<Employee> queryEmployeeByPage(Page page){
int total = getEmployeeTotalCount();
page.setTotalNum(total); //设置page总数 //设置页数
int pageNum = total / page.getPageSize();
if(total % page.getPageSize() != 0)
pageNum++;
page.setPageNums(pageNum); //开始查询的记录
int start = page.getCurPageNum() * page.getPageSize();
//显示最后一页内容
if(start >= total){
start = (page.getPageNums() - 1) * page.getPageSize();
} //开始查询
List<Employee> listOfEmployee = new ArrayList<Employee>();
Session session = baseDao.getSession();
session.beginTransaction();
String hql = "from Employee";
Query query = session.createQuery(hql);
query.setFirstResult(start);
query.setMaxResults(page.getPageSize());
listOfEmployee = query.list();
session.getTransaction().commit(); session.close(); return listOfEmployee; }

action类

 import java.util.List;
import java.util.Map; import org.apache.struts2.interceptor.RequestAware; import com.gxf.IDao.IEmployeeDao;
import com.gxf.entity.Employee;
import com.gxf.util.Page;
import com.opensymphony.xwork2.ActionSupport; /**
* 员工分页显示
* @author GXF
*
*/
public class EmployeeAction extends ActionSupport implements RequestAware{
private Map<String, Object> request;
private IEmployeeDao employeeDao;
private Page page = new Page();
private int curPageNumber; /**
*
*/
private static final long serialVersionUID = 1L; public String queryAllEmployee(){
//设置好当前页码
page.setCurPageNum(curPageNumber); List<Employee> listOfEmployee = employeeDao.queryEmployeeByPage(page);
if(curPageNumber <= 0)
curPageNumber = 0;
if(curPageNumber >= page.getPageNums())
curPageNumber = page.getPageNums();
request.put("listOfEmployee", listOfEmployee);
for(int i = 0; i < listOfEmployee.size(); i++)
System.out.println(listOfEmployee.get(i).getName());
return SUCCESS;
} @Override
public void setRequest(Map<String, Object> request) {
this.request = request;
} public IEmployeeDao getEmployeeDao() {
return employeeDao;
} public void setEmployeeDao(IEmployeeDao employeeDao) {
this.employeeDao = employeeDao;
} public Page getPage() {
return page;
} public void setPage(Page page) {
this.page = page;
} public int getCurPageNumber() {
return curPageNumber;
} public void setCurPageNumber(int curPageNumber) {
this.curPageNumber = curPageNumber;
} }

JSP页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>employee分页显示实现</title>
</head>
<body>
employeeList分页显示<br>
<form action="#">
<s:iterator value="#request.listOfEmployee" id="employee">
<s:property value="#employee.name"/><br>
</s:iterator>
<br>
<a href="queryEmployee?curPageNumber=0">首页</a>
<a href="queryEmployee?curPageNumber=${curPageNumber-1} ">上一页</a>
<a href="queryEmployee?curPageNumber=${curPageNumber+1}">下一页</a>
<a href="queryEmployee?curPageNumber=<s:property value="page.pageNums"/>">尾页</a>
一共<s:property value="page.pageNums"/>页
</form>
</body>
</html>

效果

struts2分页实现的更多相关文章

  1. Struts2 实现分页

    1.转自:http://www.cnblogs.com/shiyangxt/archive/2008/11/04/1316737.html环境:MyEclipse6.5+Mysql5+struts2. ...

  2. 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】

    分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...

  3. 用Hibernate和Struts2+jsp实现分页查询、修改删除

    1.首先用get的方法传递一个页数过去 2.通过Struts2跳转到Action 3.通过request接受主页面index传过的页数,此时页数是1, 然后调用service层的方法获取DAO层分页查 ...

  4. struts2+spring+hibernate 实现分页

    在这里要感谢下这位博友发表的博文 http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html 通过对他代码的阅读,从而自己实现了网页分 ...

  5. SSH:Struts2.2+Hibernate3.6+Spring3.1分页示例[转]

    参考资料 1 ssh分页(多个例子) http://useryouyou.iteye.com/blog/593954 2 ssh2分页例子 http://459104018-qq-com.iteye. ...

  6. 分页进阶--ajax+jquery+struts2

    按照上次的分页逻辑,分页查询的业务大概需要几个“零件”:1.当前页:2.总页数:3.跳转页.后端需要处理的是:按照传送过来请求的页码返回相应地数据,并且接受初始化参数的请求:总页码.第一页的数据. 使 ...

  7. hibernate和struts2实现分页功能

    1.DAO层接口的设计,定义一个PersonDAO接口,里面声明了两个方法: public interface PersonDAO { public List<Person> queryB ...

  8. 5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查

    1.创建如下项目结构 2.在src下的com.entity包下创建Dept.java package com.entity; /** * 部门表 * @author Holly老师 * */ publ ...

  9. 4、mybatis动态sql+struts2(通配符+全局配置+分页)

    1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ...

随机推荐

  1. 【TED演讲】阿帕玛・饶:(幽默的高科技艺术)

    身为艺术家和TED Fellow的阿帕玛・饶对熟悉的事物以惊奇的幽默的方式进行再次想像.通过和索伦・普尔兹的合作,她创作出一系列高科技的艺术作品-一个会发邮件的打字机,一个让你在屏幕上消失而跟踪拍摄你 ...

  2. C#中工厂模式的作用

    1.比如,主要用于对扩展性有要求的功能. 以简单工厂为例: 接口Fun有三个实现 class FunA FunB FunC工厂 class Fac {   public static Fun getF ...

  3. Python脚本开发练习

    打印乘法口诀表 #!/usr/bin/python #coding=utf-8 print("Hello,World....") print("你好,欢迎来到Python ...

  4. loj #6261 一个人的高三楼 FFT + 组合数递推

    \(\color{#0066ff}{ 题目描述 }\) 一天的学习快要结束了,高三楼在晚自习的时候恢复了宁静. 不过,\(HSD\) 桑还有一些作业没有完成,他需要在这个晚自习写完.比如这道数学题: ...

  5. Large Writes in Exadata FlashCache

    在 Exadata存储管理软件12.2.1.1.0中,flashcache开始支持复杂排序和大量的hash join产生的临时数据写入flashcache中,而不是直接写入SAS磁盘的tempfile ...

  6. react 的理念

    命名式的编程方式: 命名式的编程方式,我们会有百分之六七十都在进行dom的操作. 1.声名式的开发: react是面向数据开发的,react是根据这个数据自动构建这个网站,可以把数据理解成图纸,rea ...

  7. vim 常用配置项

    #设置行号set nu #设置下划线 set cursorline #设置自动锁紧 set autoindent #设置shift空格 set shiftwidth=4 #设置c 风格缩进 set c ...

  8. js 联动下拉菜单

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. Photoshop入门教程(二):暂存盘设置与标尺设置

    新建文档之后大家就可以对图像进行编辑.在对图像进行编辑之前,先来了解一下如何查看图像的一些基本信息.在软件左下角,会有这样的信息显示窗口. 1窗口表示当前图像显示比例,200%代表当前为放大两倍显示. ...

  10. vue入门----------路由配置

    在使用脚手架搭建好项目后要配置路由 1.首先要安装vue-router,你可以在项目的package.json文件中的dependencies项目中添加"vue-route": & ...