zoukankan      html  css  js  c++  java
  • 设备资源管理系统-分页

    设备资源管理系统-分页

    • 分页设计

      userindex.jsp

    userList.jsp

      Ajax框架

          要求:

            1、需要2个页面(XXXindex.jsp,XXXlist.jsp)

            2、一个jsp页面中使用2个form对象,分别为Form1和Form2。

            3、另一个jsp的页面中第一个jsp页面的form2的内容。

          原理:

          提交过程,实质是提交Form1的参数,使用Fom1的参数,查询后台数据,返回结果,将结果在XXXlist.jsp上显示,用XXXlist.jsp的内容替换XXXIndex.jsp中Form2的内容

    • 部分代码

    1、导入2个java文件,分别是PageBean和PageInfo

       PageBean中的代码:

        private int pageNo;          //当前第几页

        private boolean firstPage;   //当前页是否是第一页

        private boolean lastPage;    //当前页是否是最后一页

        private int sumPage;         //存放总页数

        private int pageSize ;       //当前页显示几条记录

        private int totalResult ;    //存放总记录数

    2、导入1个js文件,是page.js,放入到script文件夹下

    3、修改userIndx.jsp

       * 导入需要的js文件

         <script language="javascript" src="${pageContext.request.contextPath }/script/function.js"></script>

      <script language="javascript" src="${pageContext.request.contextPath }/script/pub.js"></script>

      <script language="javascript" src="${pageContext.request.contextPath }/script/validate.js"></script>

      <script language="javascript" src="${pageContext.request.contextPath }/script/page.js"></script>

       * 在form1中,添加3个隐藏域,用于传递参数

       * 修改查询按钮的onclick事件

         <input style="font-size:12px; color:black; height=20;width=80" id="BT_Add" type="button" value="查询" name="BT_find"

           onclick="gotoquery('system/elecUserAction_home.do')">&nbsp;&nbsp;

       * 在Form2中添加分页的操作

          <!-- ly add start-->

         <tr>

               <td width="100%" height="1"  >

                 <table border="0" width="100%" cellspacing="0" cellpadding="0">

                 <%PageBean pagebean=(PageBean)request.getAttribute("page");%>

                   <tr>

                     <td width="15%" align="left">总记录数:<%=pagebean.getTotalResult() %>条</td>

                     <td width="14%" align="right"></td>     

                     <%if(pagebean.getFirstPage()){ %>          

                     <td width="8%" align="center">首页&nbsp;&nbsp;|</td>

                     <td width="10%" align="center">上一页&nbsp;&nbsp;&nbsp;|</td>

                     <%}else{ %>

                     <td width="8%" align="center"><u><a href="#" onClick="gotopage('system/elecUserAction_home.do','start')">首页&nbsp;&nbsp;|</a></u></td>

                     <td width="10%" align="center"><u><a href="#" onClick="gotopage('system/elecUserAction_home.do','prev')">上一页&nbsp;&nbsp;&nbsp;|</a></u></td>

                     <%} %>

                     <%if(pagebean.getLastPage()){ %>

            <td width="10%" align="center">下一页&nbsp;&nbsp;&nbsp;|</td>

                     <td width="8%" align="center">末页</td>

                     <%}else{ %>

                     <td width="10%" align="center"><u><a href="#" onClick="gotopage('system/elecUserAction_home.do','next')">下一页&nbsp;&nbsp;&nbsp;|</a></u></td>

                     <td width="8%" align="center"><u><a href="#" onClick="gotopage('system/elecUserAction_home.do','end')">末页</a></u></td>

                     <%} %>

                     <td width="6%" align="center">第<%=pagebean.getPageNo() %>页</td>

                     <td width="6%" align="center">共<%=pagebean.getSumPage() %>页</td>

                     <td width="21%" align="right">至第<input size="1" type="text" name="goPage" >页

       

       

       

                     <u><a href="#" onClick="gotopage('system/elecUserAction_home.do','go')">确定</a></u></td>

                    

                     <td><input type="hidden" name="pageNO" value="<%=pagebean.getPageNo()%>" ></td>

                     <td><input type="hidden" name="prevpageNO" value="<%=(pagebean.getPageNo()-1)%>"></td>

                     <td><input type="hidden" name="nextpageNO" value="<%=(pagebean.getPageNo()+1)%>"></td>

                     <td><input type="hidden" name="sumPage" value="<%=pagebean.getSumPage() %>" ></td>

                     <td><input type="hidden" name="pageSize" value="" ></td>

                   </tr>

                 </table>      

               </td>

             </tr>

        <!-- ly add  end-->  

    4、提取userIndex.jsp中Form2的内容,建立userList.jsp

    5、在struts.xml的配置文件中,添加:

        <!-- 2011-12-12,添加分页的页面转发 -->

       <result name="list">

        /WEB-INF/page/system/userList.jsp

       </result>

    6、在ElecUserAction.java中修改

       //2011-12-12 添加分页,传递request对象

       List<ElecUserForm> list = elecUserService.findElecUserListByCondition(elecUserForm,request);

       request.setAttribute("userList", list);

       String initflag = request.getParameter("initflag");

       if(initflag!=null && initflag.equals("1")){

         return "list";

       }

    7、在ElecUserServiceImpl.java中添加

       //2011-12-12,添加分页操作

       //List<ElecUser> list = elecUserDao.findCollectionByConditionNoPage(hqlWhere, params, orderby);

       PageInfo pageInfo = new PageInfo(request);

       操作逻辑:

          使用currentPageNo属性,表示当前是第几页,默认是第一页

          使用pageSize属性,表示当前页显示的记录数

          使用req属性,存放页面传递的request对象

       List<ElecUser> list = elecUserDao.findCollectionByConditionWithPage(hqlWhere, params, orderby, pageInfo);

       request.setAttribute("page", pageInfo.getPageBean());

    8、在CommonDaoImpl.java中修改

       List<T> list = (List<T>)this.getHibernateTemplate().execute(new HibernateCallback(){

       public Object doInHibernate(Session session)

         throws HibernateException, SQLException {

        Query query = session.createQuery(finalHql);

        setParams(query,params);

        pageInfo.setTotalResult(query.list().size());

        操作逻辑:

           使用totalResult属性,存放查询列表的总的记录数

           使用totalPage属性,存放总页数(使用总记录数对每页显示的记录数进行计算求得)

        query.setFirstResult(pageInfo.getBeginResult());

        操作逻辑:

           使用beginResult属性,表示结果列表从第几条开始显示,也就是说,每页的第一条显示的数据

           实例化PageBean,添加属性

          

        query.setMaxResults(pageInfo.getPageSize());

        return query.list();

       }

      });

  • 相关阅读:
    P3180 [HAOI2016]地图
    P2787 语文1(chin1)- 理理思维
    P2221 [HAOI2012]高速公路
    P4137 Rmq Problem / mex
    P3746 [六省联考2017]组合数问题
    P2461 [SDOI2008]递归数列
    P3715 [BJOI2017]魔法咒语
    P3195 [HNOI2008]玩具装箱TOY
    Linux下的strerror是否线程安全?
    bash/shell的字符串trim实现
  • 原文地址:https://www.cnblogs.com/yangml/p/3819268.html
Copyright © 2011-2022 走看看