首页 > 代码库 > 设备资源管理系统-分页

设备资源管理系统-分页

设备资源管理系统-分页

  • 分页设计

  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="http://www.mamicode.com/${pageContext.request.contextPath }/script/function.js"></script>

  <script language="javascript" src="http://www.mamicode.com/${pageContext.request.contextPath }/script/pub.js"></script>

  <script language="javascript" src="http://www.mamicode.com/${pageContext.request.contextPath }/script/validate.js"></script>

  <script language="javascript" src="http://www.mamicode.com/${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="http://www.mamicode.com/查询" 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="http://www.mamicode.com/#" onClick="gotopage(‘system/elecUserAction_home.do‘,‘start‘)">首页&nbsp;&nbsp;|</a></u></td>

                 <td width="10%" align="center"><u><a href="http://www.mamicode.com/#" 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="http://www.mamicode.com/#" onClick="gotopage(‘system/elecUserAction_home.do‘,‘next‘)">下一页&nbsp;&nbsp;&nbsp;|</a></u></td>

                 <td width="8%" align="center"><u><a href="http://www.mamicode.com/#" 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="http://www.mamicode.com/#" onClick="gotopage(‘system/elecUserAction_home.do‘,‘go‘)">确定</a></u></td>

                

                 <td><input type="hidden" name="pageNO" value="http://www.mamicode.com/" ></td>

                 <td><input type="hidden" name="prevpageNO" value="http://www.mamicode.com/"></td>

                 <td><input type="hidden" name="nextpageNO" value="http://www.mamicode.com/"></td>

                 <td><input type="hidden" name="sumPage" value="http://www.mamicode.com/" ></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();

   }

  });