Struts+Hibernate+jsp页面 实现分页
dao层数据库代码:
package com.hanqi.dao; import java.util.ArrayList;
import java.util.List; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry; import com.hanqi.utility.USer; public class USerDAO
{
private Configuration cfg = null ;
private ServiceRegistry sr = null ; private SessionFactory sf = null ;
private Session se = null ;
Transaction ts = null ; public USerDAO()
{
//初始化Hibernate
cfg = new Configuration().configure() ; sr = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build() ; } public void init()
{
sf = cfg.buildSessionFactory(sr) ; se = sf.openSession() ; ts = se.beginTransaction() ;
} public void destory()
{
ts.commit() ; se.close() ; sf.close() ;
} //查询列表
public List<USer> getAll(int page)
{
List<USer> list = new ArrayList<>() ; init() ; //设置每页两行及起始页
list = se.createQuery("from USer").setMaxResults(2)
.setFirstResult((page-1)*2).list() ; destory(); return list;
}
}
接下来就是jsp页面,这里通过a标签的get方式传递页码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<a href="addUSer">添加用户</a>
<br><br>
<a href="selectUSer?pages=1" >用户列表</a>
</body>
</html>
跳转到显示界面
<%@page import="com.hanqi.utility.USer"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<% List<USer> list = (List<USer>)request.getAttribute("selectuser") ; for(USer us : list )
{
out.print(us + "<a href='deleteuser?user_id="+us.getUser_id()+"'> 【删除】</a>"
+"<a href='modify?userid="+us.getUser_id()+"'> 【修改】</a>"
+"<br>") ;
}
int pages = Integer.parseInt(request.getParameter("pages")) ; %> <% if(list.size()==0){response.getWriter().write("页码超出范围") ;
response.setHeader("refresh", "3;url=selectUSer?pages=1") ;}else{ %>
<%%>
<a href="selectUSer?pages=<%=pages-1%>">上一页</a>
<a href="selectUSer?pages=<%=pages+1%>">下一页</a>
<%} %>
</body>
</html>
Struts文件配置
<!-- 查询全部 -->
<action name="selectUSer" class="com.hanqi.action.USerAction" method="selectUSer"> <result name="fail">/WEB-INF/pages/fail.jsp</result> <result name="success">/WEB-INF/pages/selectUSer.jsp</result> </action>
service层方法
public String selectUSer()
{
String rtn = "fail" ; try
{//得到原生request
HttpServletRequest hsr = ServletActionContext.getRequest() ; int page = Integer.parseInt(hsr.getParameter("pages")) ; //page = Integer.parseInt(hsr.getParameter("pagess")) ;
//调用查询的方法
List<USer> list = new UserService().getAll(page); hsr.setAttribute("pages", page+1); hsr.setAttribute("selectuser", list); rtn = "success" ;
}catch(Exception e)
{
e.printStackTrace();
} return rtn;
}

页码超出时,提示错误(通过jsp的List来判断)Hibernate提供的方法返回的List.size()为行数(最后一页可能少于行数),若为零则没有数据即可判断

Struts+Hibernate+jsp页面 实现分页的更多相关文章
- Struts+Hibernate+jsp页面,实现分页
dao层代码 package com.hanqi.dao; import java.util.ArrayList; import java.util.List; import org.hibernat ...
- jsp页面数据分页模仿百度分页效果
<%@page import="web09.shop.DBUtil"%> <%@page import="java.sql.ResultSet" ...
- Java_Web三大框架之Hibernate+jsp+HQL分页查询
分页查询无处不在.使用Hibernate+jsp+HQL进行分页查询. 第一步:编写房屋实体类和House.hbm.xml映射. /* * 房屋实体类 */ public class House { ...
- 分页(将数据库中的多条数据一页一页的显示在jsp页面中)
一.显示数据库中的多条数据为什么要用分页 在真正的开发中,数据库中所存储的数据绝对不像我们平时所写的那样,仅仅有几条数据,而是有几十条甚至上百条,像淘宝京东的用户把都是上几十万甚至百万的.如果这时候在 ...
- struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)
JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象: 由JSON格式字符串创建,转换成JavaScript的List或数组链表对象. 更多关于J ...
- 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件
分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...
- java分页的实现(后台工具类和前台jsp页面)
1.首先,新建一个类Page.java public class Page implements Serializable { private static final long serialVers ...
- Jsp页面,结果集分页和sql(top)分页的性能对比
jsp页面两种分页模式: 第一种: 结果集分页,主要代码见下面: ResultSet rs=stmt.executeQuery(sql); ResultSetMetaData md=rs.getMet ...
- 通用分页jsp页面显示
注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html 的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...
随机推荐
- 分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)
前文链接:分数的加减法——C语言初学者代码中的常见错误与瑕疵(11) 重构 题目的修正 我抛弃了原题中“其中a, b, c, d是一个0-9的整数”这样的前提条件,因为这种限制毫无必要.只假设a, b ...
- android 百度地图定位开发1
首先注册成为百度开发者 然后进入百度开发者中心 点击LBS 跳到下一个页面 点击Android 开发 里面的基础地图 进入 点击获取密钥 进入 点击创建应用 进入 应用名称自己填 应用类 ...
- js正则函数match、exec、test、search、replace、split使用介绍集合
match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对 ...
- word2007里插入分节符
1.打开Word文档,将鼠标定位到需要插入分页符的位置(比如第2页的末尾处),切换到"页面布局"功能区. 2.在"页面设置"分组中单击"分隔符&quo ...
- eclipse Juno Indigo Helios Galileo这几种版本的意思
Eclipse 3.1 版本代号 IO [木卫1,伊奥] Eclipse 3.2, 30-06-2006, Callisto projects, 版本代号 Callisto [木卫四,卡里斯托 ] ...
- win7中搜索文件内容的方法
打开“控制面板”,选择“大类别”或“小类别”,然后打开 “索引选项”.点击“高级”按钮,在弹出的对话框中打开“文件类型”标签,在下方的输入框中“将新扩展名添加到列表中”,添加要搜索的未知文本文件的扩展 ...
- docker stop 与 docker kill的区别
docker stop 与 docker kill 均可以将容器停掉,但二者究竟有什么区别呢?首先,摘录一下官网对这两个功能的描述: docker stop: Stop a running conta ...
- HTML5与CSS3权威指南
第一章:Web时代的变迁 HTML5放心使用的理由: 兼容性:HTML5在老板本的浏览器上也可以正常运行: 实用性:HTML5内部并没有封装什么很复杂的,不切实际的功能,而只是封装了简单实用的功能: ...
- 通达OA 指纹考勤机接口 源代码
通达oa2011已经支持 指纹考勤机 但只限中控iclock660 这款2000大洋的型号 通过本文的开发接口,可以与任意一款指纹机集成, 需求指纹机管理软件能实时保存数据 我这里用的是 中控u16 ...
- java poi Excel导入 整数浮点数转换问题解决
/** * 获取单元格数据 */ protected static String getCellValue(Cell cell) { String cellValu ...