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. B - Factors of Factorial

    Problem Statement You are given an integer N. Find the number of the positive divisors of N!, modulo ...

  2. 简单配置webpack4 + vue

    1.创建webpack4-vue文件夹 mkdir webpack4-vue && cd webpack4-vue 2.初始化npm npm init -y 3.安装相关依赖 npm ...

  3. 学习高性能mysql

    Mysql 的InnoDB存储引擎实现的不是简单的行级锁,实现的是MVCC,多版本并发控制,可以理解成行级锁的一个变种. InnoDB的MVCC是通过在每行纪录后面保存两个隐藏的列来实现的.这两个列, ...

  4. (一)ByteDance编程题

    题目: 公司的程序员不够用了,决定把产品经理都转变为程序员以解决开发时间长的问题. 在给定的矩形网格中,每个单元格可以有以下三个值之一: 值0代表空单元格 值1代表产品经理 值2代表程序员 每分钟,任 ...

  5. .net mvc 框架实现后台管理系统 2

    layui 数据表格 返回格式: var json = new { code = 0, count = pagers.totalRows, msg = "", data =null ...

  6. window 使用频率最高的快捷键

    window  使用频率最高的快捷键 一个电脑使用者不完全一切操作都靠鼠标 适当的快捷键 不但可以提高效率 而且还可以适当的装一下自己是大神啦啦啦 个人最常用的快捷键: Ctrl + c : 复制 C ...

  7. react todolist代码优化

    Todolist.js import React, { Component,Fragment } from 'react'; import TodoItem from './TodoItem'; im ...

  8. spring boot +Thymeleaf+mybatis 集成通用PageHelper,做分页

    controller: /**  * 分页查询用户  * @param request  * @param response  * @return  * @throws Exception  */ @ ...

  9. 使用lombok 简化代码

    第一步:添加依赖 第二步:下载 lombok  jar 包 第三步 :打开cmd 命令行 执行命令, -javaagent:lombok.jar -Xbootclasspath/a:lombok.ja ...

  10. svg 日常操作

    创建svg 文件 <svg> </svg> 详解viewBox  SVG Viewport.View Box和preserveAspectRatio 形状  标签内的值可以是百 ...