struts2+hibernate(分页实现)
//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(分页实现)的更多相关文章
- struts2+hibernate整合-实现登录功能
最近一直学习struts2+hibernate框架,于是想把两个框架整合到一起,做一个小的登录项目.其他不多说,直接看例子. 1).Struts2 和hibernate的环境配置 包括jar包.web ...
- JQuery+Ajax+Struts2+Hibernate 实现完整的登录注册
写在最前: 下午有招聘会,不想去,总觉得没有准备好,而且都是一些不对口的公司,可是又静不下心来,就来写个博客. 最近在仿造一个书城的网站:http://www.yousuu.com ,UI直接拿来用, ...
- struts2+hibernate+poi导出Excel实例
本实例通过struts2+hibernate+poi实现导出数据导入到Excel的功能 用到的jar包: poi 下载地址:http://poi.apache.org/ 根据查询条件的选择显示相应数据 ...
- 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境
上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...
- Spring整合Struts2,Hibernate的xml方式
作为一个学习中的码农,一直学习才是我们的常态,所以最近学习了SSH(Spring,Struts2,Hibernate)整合,数据库用的MySQL. 写了一个简单的例子,用的工具是IntelliJ Id ...
- Struts2+Hibernate框架探险
写这篇文章的目的 了解 JavaWeb 开发的人都知道SSH和SSM框架,前段时间开始接触 JavaWeb 开发,看了几个教学视频后就想上手构建一个小型 Web项目,可在跟着视频敲代码当中,使用 St ...
- 简单Spring+Struts2+Hibernate框架搭建
使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...
- SSH(Spring Struts2 Hibernate)框架整合(注解版)
案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2 Hibernate 案例架构: 1.依赖jar包 pom.xml < ...
- [Java web]Spring+Struts2+Hibernate整合过程
摘要 最近一直在折腾java web相关内容,这里就把最近学习的spring+struts2+hibernate进行一个整合,也就是大家经常说的ssh. 环境 工具IDE :Idea 2018 数据库 ...
随机推荐
- 一篇文章学会shell工具篇之sed
sed工具执行原理; 有关sed的参数及action的常见操作方法; 定址; 模式空间和保持空间; 使用标签 1.首先先来了解一下什么是sed? sed叫做流编辑器,在shell脚本和Makefile ...
- mybatis自己学习的一些总结
曾经一直在使用spring的JDBCTEMPLATE和hibernate做项目.两个都还不错,spring的jdbctemplate用起来比較麻烦,尽管非常easy.而hibernate呢,用起来非常 ...
- vivado烧写bin文件到flash 中
点击 bitstream setting ,将 bin_file 勾上,点击 OK. 2)点击 generate bitstream ,生成 bit 文件和 bin 文件 3)点击 open hard ...
- 阿里云流计算BLINK
https://help.aliyun.com/product/45029.html?spm=a2c4g.11186623.3.1.sSHCfr https://yq.aliyun.com/tags/ ...
- axios 的应用
vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法. 首先就是引入axios,如果你使用es6,只需要安装axios ...
- 用nodejs http-server搭建本地服务环境
一.本地环境,不包括域名的方法: https://www.npmjs.com/package/http-server(参考手册) 正确使用方法:
- Pycharm快捷键整理(Mac)
用过快捷键立即感觉高大上了,最主要的是很方便啊!很强大 cmd b 跳转到声明处(cmd加鼠标) opt + 空格 显示符号代码 (esc退出窗口 回车进入代码) cmd []光标之前/后的位置 op ...
- django —— Celery实现异步和定时任务
1. 环境 python==2.7 djang==1.11.2 # 1.8, 1.9, 1.10应该都没问题 celery-with-redis==3.0 # 需要用到redis作为中间人服务(Bro ...
- idea 提示忽略大小写
- hibernate特殊的映射
<property name="update_date" column="update_date" type="java.sql.Timesta ...