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 ) ...
随机推荐
- Educational Codeforces Round 61 (Rated for Div. 2)D(二分,模拟,思维)
#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,k;ll a[200007],b[200007] ...
- AtCoder Grand Contest 011D(思维,规律,异或)
#include<bits/stdc++.h>using namespace std;char s[200007];int ans[200007];int main(){ int n ...
- python的发音
我一直读的是:拍方(可能是受有道词典发音的影响了~),可是别人都听不懂,他们大多是读的拍森. 来看看下面这个小伙伴的解释,感觉他说的挺好: “θ”这个字符的发音,有 80% 的中国人(学英文的人)都读 ...
- atcoder/CODE FESTIVAL 2017 qual B/B(dfs染色判断是否为二分图)
题目链接:http://code-festival-2017-qualb.contest.atcoder.jp/tasks/code_festival_2017_qualb_c 题意:给出一个含 n ...
- bzoj 3131 [Sdoi2013]淘金(数位dp)
题目描述 小Z在玩一个叫做<淘金者>的游戏.游戏的世界是一个二维坐标.X轴.Y轴坐标范围均为1..N.初始的时候,所有的整数坐标点上均有一块金子,共N*N块. 一阵风吹过,金子的位置发生了 ...
- 小聊outline和border
border与outline: border属性: border-width.border-style.border-color 其中border-style可以为none或hidden outlin ...
- Codeforces Round #482 (Div. 2) B、Treasure Hunt(模拟+贪心)979B
题目 大致题意 n表示要进行n次操作,接着给出三个字符串,表示三个人初始拥有的串.每次操作要替换字符串中的字母,询问最后在游戏中曾出现过的相同的子串谁最多. 思路 (1) 讨论最多的子串,肯定是全部 ...
- 6.SpringMVC2
1.视图解析 当客户端发出请求后,交由SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中对该请求的最合理的映射, ...
- thinkphp模板布局
不知道我们会不会有这样一个困惑,,每当进行一个项目时,发现页面都有好多重复的地方,假如我们每个页面都写,不仅降低的代码的运行效率 而且还不利于后期维护!TP中的模板布局就解决了这一难题! 我们就以Ad ...
- vue 子组件调用父组件的函数
子组件调用父组件的函数,使用$emit(eventName,[...args]),触发当前实例上的事件.附加参数都会传给监听器回调. 子组件 <template> <div> ...