• struts2分页实现


    1.定义一个page类,里面包括每一个的数量,当前页码,总记录数,等

    2.将page对象传入dao中,dao输出分页查询好的数据。返回到action中,action放到request中,jsp从request中获取

    3.jsp传一个curPageNum到action中,action设置好page对象,传给dao查询

    page类

     1 /**
     2  * 用于分页显示
     3  * @author GXF
     4  *
     5  */
     6 public class Page {
     7     private int pageSize = 10;                    //每一页显示大小,默认为10
     8     private int totalNum;                        //记录总数
     9     private int pageNums;                        //一共有多少页
    10     private int curPageNum;                        //当前页页号
    11     
    12     public int getPageSize() {
    13         return pageSize;
    14     }
    15     public void setPageSize(int pageSize) {
    16         this.pageSize = pageSize;
    17     }
    18     public int getTotalNum() {
    19         return totalNum;
    20     }
    21     public void setTotalNum(int totalNum) {
    22         this.totalNum = totalNum;
    23     }
    24     public int getPageNums() {
    25         return pageNums;
    26     }
    27     public void setPageNums(int pageNums) {
    28         this.pageNums = pageNums;
    29     }
    30     public int getCurPageNum() {
    31         return curPageNum;
    32     }
    33     public void setCurPageNum(int curPageNum) {
    34         this.curPageNum = curPageNum;
    35     }
    36     
    37     
    38     
    39 }

    Dao类的方法

     1 /**
     2      * 分页查询
     3      * @param page
     4      * @return
     5      */
     6     public List<Employee> queryEmployeeByPage(Page page){
     7         int total = getEmployeeTotalCount();
     8         page.setTotalNum(total);                                     //设置page总数
     9         
    10         //设置页数
    11         int pageNum = total / page.getPageSize();
    12         if(total % page.getPageSize() != 0)
    13             pageNum++;
    14         page.setPageNums(pageNum);
    15         
    16         //开始查询的记录
    17         int start = page.getCurPageNum() * page.getPageSize();
    18         //显示最后一页内容
    19         if(start >= total){
    20             start = (page.getPageNums() - 1) * page.getPageSize();
    21         }
    22 
    23         //开始查询
    24         List<Employee> listOfEmployee = new ArrayList<Employee>();
    25         Session session = baseDao.getSession();
    26         session.beginTransaction();
    27         String hql = "from Employee";
    28         Query query = session.createQuery(hql);
    29         query.setFirstResult(start);
    30         query.setMaxResults(page.getPageSize());
    31         listOfEmployee = query.list();
    32         session.getTransaction().commit();
    33         
    34         session.close();
    35         
    36         return listOfEmployee;
    37         
    38     }

    action类

     1 import java.util.List;
     2 import java.util.Map;
     3 
     4 import org.apache.struts2.interceptor.RequestAware;
     5 
     6 import com.gxf.IDao.IEmployeeDao;
     7 import com.gxf.entity.Employee;
     8 import com.gxf.util.Page;
     9 import com.opensymphony.xwork2.ActionSupport;
    10 
    11 /**
    12  * 员工分页显示
    13  * @author GXF
    14  *
    15  */
    16 public class EmployeeAction extends ActionSupport implements RequestAware{
    17     private Map<String, Object> request;
    18     private IEmployeeDao employeeDao;
    19     private Page page = new Page();
    20     private int curPageNumber;
    21     
    22     /**
    23      * 
    24      */
    25     private static final long serialVersionUID = 1L;
    26 
    27     public String queryAllEmployee(){
    28         //设置好当前页码
    29         page.setCurPageNum(curPageNumber);
    30         
    31         List<Employee> listOfEmployee = employeeDao.queryEmployeeByPage(page);
    32         if(curPageNumber <= 0)
    33             curPageNumber = 0;
    34         if(curPageNumber >= page.getPageNums())
    35             curPageNumber = page.getPageNums();
    36         request.put("listOfEmployee", listOfEmployee);
    37         for(int i = 0; i < listOfEmployee.size(); i++)
    38             System.out.println(listOfEmployee.get(i).getName());
    39         return SUCCESS;
    40     }
    41 
    42     @Override
    43     public void setRequest(Map<String, Object> request) {
    44         this.request = request;    
    45     }
    46 
    47     public IEmployeeDao getEmployeeDao() {
    48         return employeeDao;
    49     }
    50 
    51     public void setEmployeeDao(IEmployeeDao employeeDao) {
    52         this.employeeDao = employeeDao;
    53     }
    54 
    55     public Page getPage() {
    56         return page;
    57     }
    58 
    59     public void setPage(Page page) {
    60         this.page = page;
    61     }
    62 
    63     public int getCurPageNumber() {
    64         return curPageNumber;
    65     }
    66 
    67     public void setCurPageNumber(int curPageNumber) {
    68         this.curPageNumber = curPageNumber;
    69     }
    70     
    71 }

    JSP页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <!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>employee分页显示实现</title>
    </head>
    <body>
        employeeList分页显示<br>
        <form action="#">
            <s:iterator value="#request.listOfEmployee" id="employee">
                <s:property value="#employee.name"/><br>
            </s:iterator>
            <br>
            <a href="queryEmployee?curPageNumber=0">首页</a>
            <a href="queryEmployee?curPageNumber=${curPageNumber-1} ">上一页</a>
            <a href="queryEmployee?curPageNumber=${curPageNumber+1}">下一页</a>
            <a href="queryEmployee?curPageNumber=<s:property value="page.pageNums"/>">尾页</a>
            一共<s:property value="page.pageNums"/></form>
    </body>
    </html>

    效果

  • 相关阅读:
    Linux学习(五)
    Linux学习(四)
    Linux学习(三)
    Linux学习(二)
    Linux学习(一)
    JAVA学习笔记(九)
    JAVA学习笔记(八)
    连接报错'mysql_native_password'
    TabControl改变TabPage时自动字体变大
    问题:winform窗体与设计时不一致
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4682746.html
Copyright © 2020-2023  润新知