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>

跳转到显示界面

 1 <%@page import="com.hanqi.utility.USer"%>
 2 <%@page import="java.util.List"%>
 3 <%@ page language="java" contentType="text/html; charset=UTF-8"
 4     pageEncoding="UTF-8"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>Insert title here</title>
10 </head>
11 <body>
12 <%
13
14 List<USer> list = (List<USer>)request.getAttribute("selectuser") ;
15
16 for(USer us : list )
17 {
18     out.print(us + "<a href=‘deleteuser?user_id="+us.getUser_id()+"‘>    【删除】</a>"
19                         +"<a href=‘modify?userid="+us.getUser_id()+"‘>    【修改】</a>"
20                             +"<br>") ;
21 }
22 int pages = Integer.parseInt(request.getParameter("pages")) ;
23
24 %>
25
26 <% if(list.size()==0){response.getWriter().write("页码超出范围") ;
27                                 response.setHeader("refresh", "3;url=selectUSer?pages=1") ;}else{ %>
28 <%%>
29 <a href="selectUSer?pages=<%=pages-1%>">上一页</a>
30 <a href="selectUSer?pages=<%=pages+1%>">下一页</a>
31 <%} %>
32 </body>
33 </html>

Struts文件配置

1 <!-- 查询全部 -->
2         <action name="selectUSer" class="com.hanqi.action.USerAction" method="selectUSer">
3
4                 <result name="fail">/WEB-INF/pages/fail.jsp</result>
5
6                 <result name="success">/WEB-INF/pages/selectUSer.jsp</result>
7
8         </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()为行数(最后一页可能少于行数),若为零则没有数据即可判断

时间: 2024-10-07 09:21:39

Struts+Hibernate+jsp页面 实现分页的相关文章

struts向jsp页面传值

struts向jsp页面传值有两种方式: 1.在Action中定义成员变量,jsp页面通过${成员变量名}或<s:property value="成员变量名">取值. 如:private String username; setter/getter方法 ${username}或<s:property value="username"> 2.如果成员变量较多,会使得Action代码冗余,因此考虑使用,HttpServletRequest.Htt

struts+hibernate+jsp开发MedicineManager医疗后台管理系统源代码下载

原文:struts+hibernate+jsp开发MedicineManager医疗后台管理系统源代码下载 源代码下载地址:http://www.zuidaima.com/share/1550463451368448.htm MedicineManager医疗管理系统 代码没有建库脚本,会报错

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

Struts在jsp页面中的一些运用

计应134(实验班) 陈帮政 当Struts配置好了之后我们可以在jsp页面中运用Struts来进行表单的提交. Struts支持a标签,form表单等方式传值a标签通过herf标签来和Struts进行交互在herf中可以通过herf="xxx.acrion?yy=想传入的值"来进行值的传输 在form中则在action中指定Struts响应的action 如:<form action="Studentmassage.action"></form&

Struts的JSP页面标签&lt;html:errors/&gt;的使用方法

一个jsp里两个或多个<html:errors/>时如何让他们分别显示自己该显示的错误信息 关键字: <html:errors/> 一个jsp里两个或多个<html:errors/> 分别显示错误信息 我在一个jsp里用到了两次<html:errors/>,分别在两个form表单里,可是写了两个之后<html:errors/>, 点任何一个表单中的提交按钮这两个<html:errors/>都会一起显示错误信息, 要想让他们分别显示自己

jsp页面 jstl分页显示行号代码测试,

以前记得写了个,写的很长,不好理解,现在遇到了,随手写了个,就才几行代码而已!先留着 package test; public class JstlPage { public static void main(String[] args) { int showNum = 10; int startR = 1;// 起始 // 当前页 int pags = 99; // 总页数 // i==当前页 for (int i = 0; i < pags; i++) { if (i % showNum =

jsp页面数据分页模仿百度分页效果

<%@page import="web09.shop.DBUtil"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.PreparedStatement"%> <%@page import="java.sql.Connection"%> <%@ page language="java

Java_Web三大框架之Hibernate+jsp+HQL分页查询

分页查询无处不在.使用Hibernate+jsp+HQL进行分页查询. 第一步:编写房屋实体类和House.hbm.xml映射. /* * 房屋实体类 */ public class House { private int id;//房屋id private HouseType type;//房屋类型 private Users2 user;//用户 private Street street;//街道 private String title;//标题 private String descr

struts2 hibernate 在jsp页面上面显示多个图片

最近需要在一个jsp页面上面遍历出多个图片,平时做的比较多的是string integer等类型的遍历,图片是二进制的与原来常用的类型有很大的不同. BBFSeal.java public class BBFSeal { private Blob content; private String id; private String name; private BBFUseruser; private Blob imageSeal; public BBFSeal() { } public BBFS