struts2分页实现
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分页实现的更多相关文章
- Struts2 实现分页
1.转自:http://www.cnblogs.com/shiyangxt/archive/2008/11/04/1316737.html环境:MyEclipse6.5+Mysql5+struts2. ...
- 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】
分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...
- 用Hibernate和Struts2+jsp实现分页查询、修改删除
1.首先用get的方法传递一个页数过去 2.通过Struts2跳转到Action 3.通过request接受主页面index传过的页数,此时页数是1, 然后调用service层的方法获取DAO层分页查 ...
- struts2+spring+hibernate 实现分页
在这里要感谢下这位博友发表的博文 http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html 通过对他代码的阅读,从而自己实现了网页分 ...
- SSH:Struts2.2+Hibernate3.6+Spring3.1分页示例[转]
参考资料 1 ssh分页(多个例子) http://useryouyou.iteye.com/blog/593954 2 ssh2分页例子 http://459104018-qq-com.iteye. ...
- 分页进阶--ajax+jquery+struts2
按照上次的分页逻辑,分页查询的业务大概需要几个“零件”:1.当前页:2.总页数:3.跳转页.后端需要处理的是:按照传送过来请求的页码返回相应地数据,并且接受初始化参数的请求:总页码.第一页的数据. 使 ...
- hibernate和struts2实现分页功能
1.DAO层接口的设计,定义一个PersonDAO接口,里面声明了两个方法: public interface PersonDAO { public List<Person> queryB ...
- 5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查
1.创建如下项目结构 2.在src下的com.entity包下创建Dept.java package com.entity; /** * 部门表 * @author Holly老师 * */ publ ...
- 4、mybatis动态sql+struts2(通配符+全局配置+分页)
1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ...
随机推荐
- 读《JavaScript权威指南》笔记(三)--对象
1.对象介绍 对象是JavaScript的基本数据类型.对象是一种复合值:它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值.对象也可看做是属性的无序集合,每个属性都是一个名/值对.属性 ...
- c语言参考书籍
很惭愧没能把c++学的很好,毕竟离开始工作只有2年时间,对自己要求不要过高,慢慢来吧.话说知道自己的不足,以后要更加抓紧了!fighting~ 现在计划着把c语言给学习一下了,当然这次指的是深入地学习 ...
- 转载Json和Xml的区别,以及它们的底层是如何处理的
XML:可扩展标记语言 JSON:轻量级的数据交换格式 区别: 1.可读性方面:基本相同,Xml的可读性较好些: 2.可扩展性方面:都有较好的扩展性: 3.编码难度方面:json的编码较容 ...
- Linux配置国内的Yum源
因为Linux默认的yum源是国外的源,所以会有卡顿,缓慢的情况.而国内的Yum源相对速度较快,现在也比较成熟,所以给Linux更换国内Yum源是一个很好的选择. 1. 备份(备份之前需要yum i ...
- P4094 [HEOI2016/TJOI2016]字符串 后缀数组+主席树+二分答案
$ \color{#0066ff}{ 题目描述 }$ 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了一个长为n的字符串s,和m个问题.佳媛姐姐必须 ...
- object都有string
object都有tostringString item=spinner.getSelectedItem().toString();String item01=String.valueOf(spinne ...
- 让函数的input、output更"函数化"
前言 我们都知道函数的基本形式为:output f(input),且先按这种形式进行input与output的分析,我们的input与output可以有更好的设计方式,而我们的output是选择使用r ...
- BZOJ3620(kmp)
要点 本题使用\(O(n^2)\)的算法 外层枚举左端点,内层一直kmp到结尾,中间遇到合法的就ans++ 如果是acccca这种数据直接kmp过程顺手判断即可:但是aaa这种数据,j = 2,实际判 ...
- jq方法(end)
.end()方法: 使得结果集可以后退一步 $('div') .find('h3') .eq() .html('hello') .end()//退回到选中所有的h3元素的那一步 .eq()//选中第一 ...
- Linux磁盘分区管理
1.分区步骤 fdisk -l 查看系统中的磁盘 fdisk /dev/vdb ...