Struts分页代码

本文介绍了一种基于Java的分页技术实现方法,包括PageList和Pages类的设计,以及在Action、DAO层的具体应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  声明:本文代码来自“西安健飞软件”内部,由小洋提供全套技术支持!在此感谢!

PageList
package com.hp.struts.util;
 
import java.util.List;
 
publicclass PageList {
       private Pages page=null;         //分页对象
       private List objectList=null;    //对象集合
       private String pageStr="";      //分页字符串
      
       public List getObjectList() {
              returnobjectList;
       }
       publicvoid setObjectList(List objectList) {
              this.objectList = objectList;
       }
       public Pages getPage() {
              returnpage;
       }
       publicvoid setPage(Pages page) {
              this.page = page;
              pageStr=page.getLastPageBreak();
       }
       public String getPageStr() {
              returnpageStr;
       }
       publicvoid setPageStr(String pageStr) {
              this.pageStr = pageStr;
       }
 
}
 
Pages
package com.hp.struts.util;
 
import javax.servlet.http.HttpServletRequest;
 
publicclass Pages {
       private String fileName="";     
       privateintpageSize=2;           //当页显示记录数
       privateintallPage=1;             //总页数
       privateintcPage=1;               //当前页
       privateintsPage=1;               //当前页开始记录数
       privateintallRecord=1;          //总记录数
       private String lastPageBreak="";   //分页字符串
      
      
       public Pages(){
             
       }
      
       public Pages(String fileName,HttpServletRequest request){
             
              this.fileName=request.getContextPath()+fileName;
              //获得当前页
              String cPageStr = request.getParameter("cpage")==null?"1":request.getParameter("cpage");
             
              int cPageInt = 0;
              try
              {
                     cPageInt = Integer.parseInt(cPageStr);
              }catch(Exception e){
                     System.out.println("com.s6.util.Pages = "+e.getMessage());
                     cPageInt = 1;
              }finally{
                     cPage = cPageInt;
              }
       }
      
       //计算总页数,判断当前页的合法性,计算当前页的开始记录数,生成分页字符串
       publicvoid doPage(){
              //计算总页数
              this.allPage=(int)(this.allRecord+this.pageSize-1)/this.pageSize;
             
              //判断当前页的合法性
              if(this.cPage<0){
                     this.cPage=1;
              }
              if(this.cPage>this.allPage){
                     this.cPage=this.allPage;
              }
             
              //计算当前页开始记录数
              this.sPage=(this.cPage-1)*this.pageSize+1;
             
             
             
              //生成分页字符串
              StringBuffer str=new StringBuffer();
              //判断是否有问号
              if(this.fileName.indexOf("?")==-1){
                     this.fileName=this.fileName+"?1=1";
              }
             
              str.append("<table width=/"100%/" height=/"100%/">");
             
              //添加表单
              str.append("<form name=/"pagelist/" method=/"post/" action=/"");
              str.append(this.fileName+"/">");
             
              str.append("<tr><td width=/"100%/" height=/"100%/" align=/"center/" valign=/"middle/">");
             
              str.append("总纪录数"+this.allRecord+"");
              str.append("&nbsp;");
              //首页
              if(this.cPage>1){
                     str.append("<a href="+this.fileName+"&cpage=1>首页</a>");
              }else{
                     str.append("首页");
              }
              str.append("&nbsp;");
             
              //上一页
              if(this.cPage>1){
                     str.append("<a href=");
                     str.append(this.fileName+"&cpage=");
                     str.append(this.cPage-1);
                     str.append(">上一页</a>");
              }else{
                     str.append("上一页");
              }
              str.append("&nbsp;");
             
              //下一页
              if(this.cPage<this.allPage){
                     str.append("<a href=");
                     str.append(this.fileName+"&cpage=");
                     str.append(this.cPage+1);
                     str.append(">下一页</a>");
              }else{
                     str.append("下一页");
              }
              str.append("&nbsp;");
             
              //末页
              if(this.cPage<this.allPage){
                     str.append("<a href=");
                     str.append(this.fileName+"&cpage=");
                     str.append(this.allPage);
                     str.append(">末页</a>");
              }else{
                     str.append("末页");
              }
              str.append("&nbsp;");
             
              //第几页
              str.append("");
              str.append(this.cPage);
              str.append("");
              str.append("&nbsp;");
             
              //共几页
              str.append("");
              str.append(this.allPage);
              str.append("");
              str.append("&nbsp;");
             
              //跳转页
              for(int i=1;i<=this.allPage;i++){
                     str.append("&nbsp;");
                    
                     if(i==this.cPage){
                            str.append(i);
                     }else{
                            str.append("<a href=");
                            str.append(this.fileName+"&cpage=");
                            str.append(i);
                            str.append(">"+i+"</a>");
                     }
              }
             
             
              //str.append("&nbsp;&nbsp;跳转到");
              //str.append("<select name=/"cpage/" onchange=/"document.pagelist.submit()/" >");
              //for(int i=1;i<=this.allPage;i++){
              //       str.append("<option value=/"");
              //       str.append(i);
              //       str.append("/"");
              //       if(this.cPage==i){
              //              str.append(" selected");
              //       }
              //       str.append(">");
              //       str.append(i);
              //       str.append("</option>");
              //}
              //str.append("</select>");
              str.append("</td></tr></form>");
              str.append("</table>");
             
              lastPageBreak=str.toString();
      
       }
      
             
      
       publicint getAllPage() {
              returnallPage;
       }
       publicvoid setAllPage(int allPage) {
              this.allPage = allPage;
       }
       publicint getCPage() {
              returncPage;
       }
       publicvoid setCPage(int page) {
              cPage = page;
       }
       public String getFileName() {
              returnfileName;
       }
       publicvoid setFileName(String fileName) {
              this.fileName = fileName;
       }
       public String getLastPageBreak() {
              returnlastPageBreak;
       }
       publicvoid setLastPageBreak(String lastPageBreak) {
              this.lastPageBreak = lastPageBreak;
       }
       publicint getPageSize() {
              returnpageSize;
       }
       publicvoid setPageSize(int pageSize) {
              this.pageSize = pageSize;
       }
       publicint getSPage() {
              doPage();
              returnsPage;
       }
       publicvoid setSPage(int page) {
              sPage = page;
       }
       publicint getAllRecord() {
              returnallRecord;
       }
       publicvoid setAllRecord(int allRecord) {
              this.allRecord = allRecord;
       }
      
 
}
 
Action类里的分页方法(函数)
public ActionForward fenye(ActionMapping mapping, ActionForm form,
                     HttpServletRequest request, HttpServletResponse response) {
              String userId=request.getParameter("userId");
             
              UserDAO userDao=new UserDAO();
             
             
              Pages pages = new Pages("/user.do?method=fenye",request);
             
              pages.setPageSize(5);//当前页显示的记录数
             
              PageList pageList = userDao.getUserpagelist(pages);
             
              request.setAttribute("emps",pageList);
             
              return mapping.findForward("fenye");
       }
DAO里的分页方法
public PageList getUserpagelist(Pages pages)
       {
              PageList pageList = new PageList();
             
              List list = new ArrayList();
             
              String sql="select * from T_USER_SYS";
              //执行SQL语句获得结果集
              ResultSet rs=this.doExcuteQuery(sql);
             
              try {
                     //首先将光标移动到最后一行
                     rs.last();
                     pages.setAllRecord(rs.getRow());//记录集总行数
                    
                     rs.absolute(pages.getSPage());//光标定位到页的第一行
                     int i=0;//循环变量
                     //判断记录总行数是否大于0,并循环创建USER对象
                     if(pages.getAllRecord()>0)
                     {
                            do{
                                   UserBean userBean=new UserBean();
                                  
                                   userBean.setUserId(rs.getString(1));
                                   userBean.setUserName(rs.getString(2));
                                   userBean.setUserPwd(rs.getString(3));
                                   userBean.setUserState(rs.getString(4));
                                   list.add(userBean);
                                   i++;
                                  
                            }while(rs.next()&&i<pages.getPageSize());
                           
                           
                     }
              } catch (SQLException e) {
                     e.printStackTrace();
              }finally
              {
                     this.closeConn();
              }
              pageList.setPage(pages);
              pageList.setObjectList(list);
              return pageList;
       }
分页的JSP页面
<%@ page language="java" pageEncoding="UTF-8"%>
 
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
 <head>
    <html:base />
   
    <title>fenye.jsp</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">
       <!--
       <link rel="stylesheet" type="text/css" href="styles.css">
       -->
 
 </head>
 
 <body>
       <table>
            <c:forEach items="${emps.objectList}"var="emp">
                <tr >
                  <td height="25" align="cneter" class="table3" bgcolor="dfdfdf">
                  <input type="checkbox" name="ck2" value="${emp.userId}"/></td>
                  <td align="center" class="table3" bgcolor="dfdfdf">${emp.userName}</td>
                  <td align="center" valign="middle" class="table3" bgcolor="dfdfdf">${emp.userPwd}</td>
             
                     <td align="center" valign="middle" class="table3" bgcolor="dfdfdf">
                      <html:link action="/deluser.do?userId=${emp.userId}">del</html:link>
                     </td>
              </tr>
               
            </c:forEach>
            <tr>
    <td align="left"><c:out value="${emps.pageStr}"escapeXml="false"></c:out></td>
 </tr>
       </table>
 </body>
</html:html>
 
 

SSH中的DAO

 

public PageList userList(Pages pages) {
                PageList pageList = new PageList();
                List list = new ArrayList();
 
                Session session = this.getSession();
                Transaction t = session.beginTransaction();
 
                // 获得结果集
                Query query = session.createQuery("from jfis.bean.JfisUserSys");
        //记录集总行数
                pages.setAllRecord(query.list().size());
                query.setFirstResult(pages.getSPage()-1);
                query.setMaxResults(5);
                List rs = query.list();
                Iterator iterator = rs.iterator();
                // 得到分页字符串
                pages.getSPage();
                int i = 0;// 循环变量
                // 判断记录总行数是否大于0,并循环创建USER对象
                if (pages.getAllRecord() > 0) {
                        do {
                                list = rs;
                                i++;
 
                        } while (iterator.hasNext() && i < pages.getPageSize());
 
                        pageList.setPage(pages);
                        pageList.setObjectList(list);
                       
                        t.commit();
                        session.close();
                }
                return pageList;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值