//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. windows库的创建和使用:静态库+动态库

    windows库的创建和使用:静态库+动态库   一.静态库的创建和使用 1. 静态库创建 (1)首先创建projecttest,測试代码例如以下: 1) test.h void test_print ...

  2. java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException 的解决办法之一

    在查看别人的代码的时候,遇到了把工程导入到 Android Studio ,报:ExecutionException: com.android.ide.common.process.ProcessEx ...

  3. jQuery函数继承 $.extend, $.fn.extend

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 使用JSR-303进行后台数据校验

    一.在SringMVC中使用 使用注解 1.准备校验时使用的JAR validation-api-1.0.0.GA.jar:JDK的接口: hibernate-validator-4.2.0.Fina ...

  5. u3d中的INput

    属性 属性: 功能: 轴 (Axes) 包含当前工程的所有定义的输入轴:数目 (Size) 该工程中不同输入轴的数量,元素 0.1.... 是要修改的特定的轴. 名称 (Name) 在游戏启动器中以及 ...

  6. 使用 CocoaPods 给微信集成 SDK 打印收发消息

    使用 CocoaPods 给微信集成 SDK 打印收发消息 推荐序 本文介绍的是一套逆向工具,可以在非越狱手机上给任意应用增加插件.在文末的示例中,作者拿微信举例,展示出在微信中打印收发消息的功能. ...

  7. GCC Reference

    本文简单整理了GCC编译的命令项,可作为后续使用的参考. 编译 本文以GCC为主,默认编译*.c的c语言源代码. 源文件->可执行文件 gcc -Wall test.c -o test gcc ...

  8. SpringBoot 跨域 Access-Control-Allow-Origin 问题

    https://blog.csdn.net/taoism_jerry/article/details/79695336 **************************************** ...

  9. LeetCode: Reverse Integer 解题报告

    Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...

  10. 【JDK】各个版本垃圾收集器

    G1收集器(Garbage First)是Java虚拟机中垃圾收集器的一种. G1收集器是Java虚拟机的垃圾收集器理论进一步发展的产物,它与前面的CMS收集器相比有两个显著的改进:一是G1收集器是基 ...