//Dao类中实现了list集合和pagetotal方法

package zjf.strhib.Dao;

import java.util.ArrayList;
import java.util.List; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class PageDao { public List pageQuery(int pageSize, int pageNow) { List list = new ArrayList();
SessionFactory sessionfactory = new Configuration().configure()
.buildSessionFactory();
Session session = sessionfactory.openSession();
try {
// session =new
// Configuration().configure().buildSessionFactory().openSession();
session.beginTransaction(); // 得到每页显示的LevTwoInFuUser的对象的集合list
list = session.createQuery("from user order by id")
.setFirstResult(pageNow * pageSize - pageSize)
.setMaxResults(pageSize).list();
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
// HibernateUtils.getSessionFactory().close();
// NewHibernateUtil.closesessicon();
session.close();
}
return list;
} public int pageTotle(int pageSize, int pageNow) { int i = 0;
SessionFactory sessionfactory = new Configuration().configure()
.buildSessionFactory();
Session session = sessionfactory.openSession();
try {
// session = HibernateUtils.getSessionFactory().getCurrentSession();
session.beginTransaction(); // i是查询结果条数
i = session.createQuery("from user").list().size(); // 用总的结果条数对每页显示的条数取余,得到总页数
i = i % pageSize == 0 ? i / pageSize : i / pageSize + 1; session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
// HibernateUtils.getSessionFactory().close();
// NewHibernateUtil.closesessicon();
session.close();
}
return i;
}
}
//Pagequery中实现了Dao接口 package zjf.strhib.action; import java.util.List; import zjf.strhib.Dao.PageDao; public class Pagequery {
private List list;
private int pageNow = 1 ; //初始化为1,默认从第一页开始显示
private int pageSize = 2 ; //每页显示3条记录
private int pageTotle= 1 ;//总页数 private PageDao pageDao = new PageDao () ; public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageTotle() {
return pageTotle;
}
public void setPageTotle(int pageTotle) {
this.pageTotle = pageTotle;
} public String fenye(){
//得到每页显示的对象的集合list
list = pageDao.pageQuery(pageSize, pageNow); //得到总页数pageTotle
pageTotle=pageDao.pageTotle(pageSize, pageNow); return "success";
}
}
//Page页面显示 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<SCRIPT type="text/javascript" src="js/calendar.js"></SCRIPT>
<base href="<%=basePath%>">
<title>分页</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<table border="1">
<tr>
<th>
用户编号
</th>
<th>
真实姓名
</th> </tr> <!-- 迭代查询 -->
<s:iterator value="list">
<tr>
<td>
<s:property value="name" />
</td>
<td>
<s:property value="password" />
</td>
</tr>
</s:iterator>
</table> <!-- 首页 -->
<s:url id="url_first" value="page.action">
<s:param name="pageNow" value="1"></s:param>
</s:url>
<!-- 上一页 -->
<s:url id="url_pre" value="page.action">
<s:param name="pageNow" value="pageNow-1"></s:param>
</s:url>
<!-- 下一页 -->
<s:url id="url_next" value="page.action">
<s:param name="pageNow" value="pageNow+1"></s:param>
</s:url>
<!-- 末页 -->
<s:url id="url_last" value="page.action">
<s:param name="pageNow" value="pageTotle"></s:param>
</s:url> <!-- 如果不是首页则提供首页的链接,如果是首页则不提供链接,以下类似 -->
<s:if test="pageNow != 1">
[<s:a href="%{url_first}">首页</s:a>]
</s:if>
<s:else>
[首页]
</s:else> <s:if test="pageNow>1">
[<s:a href="%{url_pre}">上一页</s:a>]
</s:if>
<s:else>
[上一页]
</s:else>
<s:if test=" pageTotle > pageNow ">
[<s:a href="%{url_next}">下一页</s:a>]
</s:if>
<s:else>
[下一页]
</s:else> <s:if test="pageTotle != pageNow">
[<s:a href="%{url_last}">末页</s:a>]
</s:if>
<s:else>
[末页]
</s:else>
第${pageNow}页/ 共${pageTotle}页 </body>
</html>

struts2+hibernate(分页实现)的更多相关文章

  1. struts2+hibernate整合-实现登录功能

    最近一直学习struts2+hibernate框架,于是想把两个框架整合到一起,做一个小的登录项目.其他不多说,直接看例子. 1).Struts2 和hibernate的环境配置 包括jar包.web ...

  2. JQuery+Ajax+Struts2+Hibernate 实现完整的登录注册

    写在最前: 下午有招聘会,不想去,总觉得没有准备好,而且都是一些不对口的公司,可是又静不下心来,就来写个博客. 最近在仿造一个书城的网站:http://www.yousuu.com ,UI直接拿来用, ...

  3. struts2+hibernate+poi导出Excel实例

    本实例通过struts2+hibernate+poi实现导出数据导入到Excel的功能 用到的jar包: poi 下载地址:http://poi.apache.org/ 根据查询条件的选择显示相应数据 ...

  4. 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

    上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...

  5. Spring整合Struts2,Hibernate的xml方式

    作为一个学习中的码农,一直学习才是我们的常态,所以最近学习了SSH(Spring,Struts2,Hibernate)整合,数据库用的MySQL. 写了一个简单的例子,用的工具是IntelliJ Id ...

  6. Struts2+Hibernate框架探险

    写这篇文章的目的 了解 JavaWeb 开发的人都知道SSH和SSM框架,前段时间开始接触 JavaWeb 开发,看了几个教学视频后就想上手构建一个小型 Web项目,可在跟着视频敲代码当中,使用 St ...

  7. 简单Spring+Struts2+Hibernate框架搭建

    使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...

  8. SSH(Spring Struts2 Hibernate)框架整合(注解版)

    案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2  Hibernate 案例架构: 1.依赖jar包 pom.xml < ...

  9. [Java web]Spring+Struts2+Hibernate整合过程

    摘要 最近一直在折腾java web相关内容,这里就把最近学习的spring+struts2+hibernate进行一个整合,也就是大家经常说的ssh. 环境 工具IDE :Idea 2018 数据库 ...

随机推荐

  1. 2.2 Apache Axis2 快速学习手册之 AXIOM 构建 Web Service

    和上一篇的POJO 部署相比主要是services.xml 中配置的消息接受处理器类不一样和Java 类中写法不一样. 使用AXIOM构建服务 样例源码路径: C:\Apps\axis2\axis2- ...

  2. Vivado SPI Flash程序下载

    由于Vivado下载程序步骤和ISE有较大差异,特此写此文章,希望对大家有所帮助. 1,下载文件生成 在.bit文件生成后,在TCL中输入 write_cfgmem -format mcs -inte ...

  3. Android异步载入学习笔记之四:利用缓存优化网络载入图片及ListView载入优化

    假设不做不论什么处理.直接用网络载入图片在网速快的情况下可能没什么不好的感觉.可是假设使用移动流量或是网络不好的时候.问题就来了,要么用户会抱怨流量使用太多.要么抱怨图片载入太慢.如论从哪个角度出发, ...

  4. dom4j: 用dom4j生成xml后第二行空行的问题

    只需要指定: format.setNewLineAfterDeclaration(false); 即可. 例: OutputFormat format = OutputFormat.createPre ...

  5. jsack

    https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr016.html#BABGHEJB

  6. Python Pycharm连接Ubantu Python环境

    由于我习惯在window下开发,但是代码环境布局在Ubantu.使用Python,为了方便程序的调试,尝试在Windows下的Pycharm远程连接到Ubantu虚拟机下的Python环境. 1.准备 ...

  7. Lua中的模块与module函数详解

    很快就要开始介绍Lua里的“面向对象”了,在此之前,我们先来了解一下Lua的模块. 1.编写一个简单的模块 Lua的模块是什么东西呢?通常我们可以理解为是一个table,这个table里有一些变量.一 ...

  8. 使用ViewPager和Fragment实现滑动导航

    ViewPage是android-support-v4.jar包提供的用于页面滑动的库,android-support-v4.jar是google推荐使用的一个类库,在项目中使用之前,你必须其添加到项 ...

  9. 在XSLT中输出内容带有CDATA的XML节点

    http://www.cnblogs.com/jaxu/archive/2013/03/13/2956904.html **************************************** ...

  10. n阶方阵A可逆充分必要条件

    n阶方阵A可逆 充分必要条件:<=> A非奇异(非奇异矩阵就是对应的行列式不等于等于0的方阵)<=> |A|≠0 <=> r(A) = n <=> A的 ...