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. DNS 解析域名以便通过服务器来访问的

    域名解析系统 就是把你要访问的网址转换成ip,然后你才能访问的东西 解析www.xxxx.com这类网址为IP来访问服务器 举例: 打个比方 ===>>> 你想去海底捞,但是只知道“ ...

  2. Java基础笔记(十七)——继承(续)final

    final  最终的 修饰类,此类不能被继承.final与访问修饰符public位置随意,在class前即可.public final class A{ } 修饰方法,此方法不能被子类重写,但可以被子 ...

  3. BZOJ 4373 算术天才⑨与等差数列 线段树+set(恶心死我了)

    mdzz,这道题重构了4遍,花了一个晚上... 满足等差数列的条件: 1. 假设min是区间最小值,max是区间最大值,那么 max-min+k(r−l) 2. 区间相邻两个数之差的绝对值的gcd=k ...

  4. hdu2066一个人的旅行(disjkstra)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  5. BeautifulSoup4模块的使用

    1. 安装 pip3 install beautifulsoup42. 使用 from bs4 import BeautifulSoup obj = BeautifulSoup("HTML内 ...

  6. hxml总结

    段落<p> br 换行 hr 分割线 &nbsp 空格 &gt  > &lt < &  &amp h        7级标题 <i ...

  7. pl/sql declare loop if

    -- 1.判断表是否存在,如果存在则drop表 -- 2.创建表 -- 3.插入1W条数据 -- 4.每1K条commit一次 declare v_table ):='STUDENT'; --表名 v ...

  8. 21-----BBS论坛

    BBS论坛(二十一) 21.1.编辑轮播图功能完成 (1)cms_banners.html 把属性绑定到<tr>上面,方便找到各属性的值 <tbody> {% for bann ...

  9. 6-----BBS论坛

    BBS论坛(六) 6.1.优化json数据的返回 (1)新建utils/restful.py # utils/restful.py from flask import jsonify class Ht ...

  10. java——时间复杂度、动态数组

    O(n)不一定小于O(n^2),要具体来看,而我们说的这种时间复杂度其实是渐进时间复杂度,描述的是n趋近于无穷的情况. 动态数组的时间复杂度: 添加操作:O(n) addLast()的均摊复杂度为O( ...