查询内容在网页里面分页显示+跳页查看
来源:互联网 发布:善软件 小众 编辑:程序博客网 时间:2024/06/06 05:12
达人科技 2016-11-19 09:34
因为还处于学习阶段,所以用的框架是Struts2+Hibernate,
查询的方法是Hibernate自带的方法,因为数据较少的缘故,所以设定每页显示两条数据来实现
1.dao 层Hibernate的分页方法
1 package com.hanqi.dao; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.hibernate.Session; 7 import org.hibernate.SessionFactory; 8 import org.hibernate.Transaction; 9 import org.hibernate.boot.registry.StandardServiceRegistryBuilder;10 import org.hibernate.cfg.Configuration;11 import org.hibernate.service.ServiceRegistry;12 13 import com.hanqi.entity.Phoner;14 15 public class PhonerDAO {16 17 //定义变量18 private Configuration cfg = null ;19 private ServiceRegistry sr = null ;20 private SessionFactory sf = null ;21 private Session se = null ;22 Transaction ts = null ;23 List<Phoner> list = new ArrayList<> ;24 25 public PhonerDAO {26 //初始化Hibernate27 cfg = new Configuration.configure ;28 29 sr = new StandardServiceRegistryBuilder.applySettings(cfg.getProperties).build ;30 31 }32 33 //配置加载34 public void init35 {36 sf = cfg.buildSessionFactory(sr) ;37 38 se = sf.openSession ;39 40 ts = se.beginTransaction ;41 }42 43 //提交事务并释放资源44 public void destory45 {46 ts.commit ; 47 48 se.close ;49 50 sf.close ; 51 }52 53 //分页显示所有联系人54 public List<Phoner> getAll(int pages)55 {56 init ;57 58 list = se.createQuery("from Phoner")//HQL语句59 .setMaxResults(2)//设置每页显示的行数60 .setFirstResult((pages-1)*2)//设置起始页61 .list ;//获得集合62 63 destory;64 65 return list ;66 }67 68 69 }
2在service调用上述方法并传递一个页码参数
1 package com.hanqi.service; 2 3 import java.util.List; 4 5 import com.hanqi.dao.PhonerDAO; 6 import com.hanqi.entity.Phoner; 7 8 public class PhonerService { 9 10 PhonerDAO pd = new PhonerDAO ;11 12 //分页查询13 public List<Phoner> getAll(int pages)14 {15 return pd.getAll(pages) ;16 }17 18 }
3底层的代码我们已经写完,接下来就是怎么在网页和struts.xml进行调用并显示数据
这是第一个页面,我们让它通过get方式携带一个页码参数(默认进去就显示第一页)
<%@page import="com.hanqi.service.PhonerService"%><%@page import="com.hanqi.entity.Phoner"%><%@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><style type="text/css">h3{text-shadow: 5px 5px 5px #FFF000 ;}</style></head><body><%%><!-- 这里设置连接跳转并携带参数传递到下一个页面 --><a href="selectPhoner.action?pages=1"><h3>查询联系人</h3></a><br><br></body></html>
之后点击查询联系人,我们通过struts.xml配置跳转到显示的页面
首先要定义一个Action的类
1 package com.hanqi.action; 2 3 import java.util.List; 4 5 import javax.servlet.http.HttpServletRequest; 6 7 import org.apache.struts2.ServletActionContext; 8 9 import com.hanqi.entity.Phoner;10 import com.hanqi.service.PhonerService;11 import com.opensymphony.xwork2.ActionSupport;12 13 public class PhonerAction {14 15 PhonerService ps = new PhonerService ;//实例化16 private String pages ;17 18 public String getPages {19 return pages;20 }21 22 public void setPages(String pages) {23 this.pages = pages;24 }25 26 public String selectPhoner27 {28 String rtn = "fail" ;29 30 try31 {32 HttpServletRequest hsr = ServletActionContext.getRequest ;//获取原生request33 34 //获取传递的参数35 int pages = Integer.parseInt(hsr.getParameter("pages")) ;36 37 List<Phoner> list = ps.getAll(pages); //调取service层方法38 39 hsr.setAttribute("pages", pages); //覆盖参数并重新传递回去40 41 hsr.setAttribute("selectAll", list); //将获取到的数据集合放入请求中42 43 rtn = "success" ;44 45 }catch(Exception e)46 {47 e.getStackTrace ;48 }49 return rtn ;50 }51 }
struts.xml配置
<action name="selectPhoner" class="com.hanqi.action.PhonerAction" method=" selectPhoner"> <result>/WEB-INF/pages/selectPhoner.jsp</result> </action>
显示数据的jsp,这里我们做了个小小的判断,因为我们设置的每页两条数据,所以我们得到的集合的长度要么0,要么1,要么2所以我们可以判断页码的超出范围
并控制弹窗,这里又做了定时跳转
1 <%@page import="com.hanqi.dao.PhonerDAO"%> 2 <%@page import="com.hanqi.service.PhonerService"%> 3 <%@page import="com.hanqi.entity.Phoner"%> 4 <%@page import="java.util.List"%> 5 <%@ page language="java" contentType="text/html; charset=UTF-8" 6 pageEncoding="UTF-8"%> 7 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 8 <html> 9 <head> 10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 11 <title>Insert title here</title> 12 <style type="text/css"> 13 *{ 14 margin:0 ; 15 padding:0; 16 } 17 table 18 { 19 height:150px; 20 width:600px; 21 border:#990 1px solid; 22 text-align:center; 23 margin:0 ; 24 border-radius:8px; 25 } 26 table tr 27 { 28 margin:0 ; 29 border:#990 1px solid; 30 cellpadding:0 ; 31 cellspacing:0 ; 32 } 33 table th 34 { 35 margin:0 ; 36 border:#990 1px solid; 37 cellpadding:0 ; 38 border:1 ; 39 } 40 table td 41 { 42 margin:0 ; 43 border:#990 1px solid; 44 cellpadding:0 ; 45 border:1 ; 46 } 47 </style> 48 </head> 49 <body> 50 <% 51 52 //定义变量,获取父级网页传递的参数 53 int pages = Integer.parseInt(request.getParameter("pages")) ; 54 55 //定义Phoner集合,并将从请求中获取到的集合赋给此集合 56 List<Phoner> list = (List<Phoner>)request.getAttribute("selectAll") ; 57 58 //获取记录条数 59 List<Phoner> list1 = new PhonerDAO.getCount ; 60 61 int account = list1.size ; 62 63 int yeshu = 0 ; 64 65 if(account%2 == 0) 66 { 67 yeshu = account/2 ; 68 } 69 else 70 { 71 yeshu = (int)account/2 + 1 ; 72 } 73 %> 74 75 <table cellspacing="0" cellpadding="0"> 76 77 <tr> 78 <th>序号</th> 79 <th>姓名</th> 80 <th>电话</th> 81 <th>地址</th> 82 <th>备注</th> 83 </tr> 84 <% 85 //在表格中遍历集合 86 for(Phoner p : list) 87 {%> 88 <tr> 89 <td><%=p.getXuhao %></td> 90 <td><%=p.getName %></td> 91 <td><%=p.getTelnum %></td> 92 <td><%=p.getAddress %></td> 93 <td><%=p.getRemart %></td> 94 </tr> 95 <% 96 } 97 %> 98 </table> 99 <%100 if(list.size == 0)101 {%>102 <script type='text/javascript'>alert('页码超出范围')</script>103 <%104 response.setHeader("refresh", "0;url=selectPhoner.action?pages=1");}105 %>106 <br>107 共 <%=yeshu %> 页 <%=account %> 条记录 当前为 <%=pages %> 页108 109 <a href="selectPhoner.action?pages=<%=pages-1 %>" >上一页</a> 110 <a href="selectPhoner.action?pages=<%=pages+1 %>" >下一页</a> 111 <form action="tiaoPhoner.action" method="post">112 跳到<input type="text" name="pages">页 <input type="submit" value="跳转" >113 </form>114 </body>115 </html>
0 0
- 查询内容在网页里面分页显示+跳页查看
- winform里面网页显示指定内容
- JSP网页分页显示数据库的内容
- 【ASP】数据库查询的内容分页显示
- SharePoint2010 修改模板页在网页中间显示网站内容
- JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)
- JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)
- JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)
- php分页显示双表查询的内容
- reportmachine中怎样实现“数据注脚footer1”里面的内容在每页显示
- 数据库里面内容在web页面select标签中显示
- 网页分页查询实例
- 在程序中调用浏览器查看网页内容
- jquery 分页显示内容
- 分页显示--订单内容
- 实现网页分页显示
- 数据条目过多时如何在网页上分页显示
- 在ddms 里面查看data/data里面的东西 不显示data/data
- 初学Hibernate,简单实现单表的增删查改
- mysql用户设置密码
- Spring框架-IOC容器和Bean的配置(1)
- Thrift开发使用笔记(1)--Thrift简介及安装使用
- 【c++】实现双向链表List类及测试
- 查询内容在网页里面分页显示+跳页查看
- Unreal Engine 4 —— 反射机制的实现
- Nginx负载均衡
- leangoo新增自定义模板、移动卡片、复制泳道功能
- 图片加载框架Picasso解析
- android stduio中导入slidingMenu
- spring4mvc返回json
- iOS 自定义cell
- HBase(0.96以上版本)过滤器Filter详解及实例代码