<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    關(guān)于分頁(yè)經(jīng)驗(yàn)不是很多,讓我來(lái)做分頁(yè),我習(xí)慣用這樣的一種方法,以前用ASP和PHP的時(shí)候也是這樣來(lái)處理的。也沒(méi)怎么認(rèn)真去檢查是否科學(xué),不過(guò)先做出來(lái)再說(shuō),交出一個(gè)不怎么好的作品總比交不出作品好。不好的話(huà)還可以去完善和優(yōu)化嘛。

    首先,先創(chuàng)建一個(gè)顯示每一頁(yè)(有若干條數(shù)據(jù))的方法(如下面的hfindAll方法),決定好每一頁(yè)接收一個(gè)頁(yè)碼參數(shù),然后顯示該頁(yè)碼里的數(shù)據(jù)。比如有100條數(shù)據(jù),那么分10頁(yè),那第幾頁(yè)顯示第幾條至第幾條數(shù)據(jù)。然后再創(chuàng)建一個(gè)方法是用于在view層顯示頁(yè)數(shù)(如下面的amountPage方法),最后是在view層上為每一頁(yè)數(shù)的數(shù)字加上超鏈接。

    以下是主要代碼:
    public class LoginDAO extends HibernateDaoSupport {
    private int PageSize =5;
    /*設(shè)置每頁(yè)的數(shù)據(jù)條數(shù)*/

     public Integer amountPage(){
         Session session =this.getSession();
      Query query = session.createQuery("from Login");
      query.setCacheable(true);
      int a = query.list().size()%PageSize;
    /*總記錄數(shù)/每頁(yè)數(shù)據(jù)數(shù),判斷是否能整除*/
      Integer amount;
      if(a!=0){
       amount = query.list().size()/PageSize+1;
    /*如果整除有余數(shù),則頁(yè)數(shù)加1*/
      }else{
       amount = query.list().size()/PageSize;
    /*如果整除沒(méi)余數(shù),則直接總記錄數(shù)/每頁(yè)數(shù)據(jù)數(shù)*/
      }
      return amount;
     }

     public List hfindAll(String pagenum) {
         Session session =this.getSession();
      Query query = session.createQuery("from Login");
      if (pagenum == null){
    /*如果pagenum是空,則數(shù)據(jù)從第一條開(kāi)始*/
      query.setFirstResult(0);
    /*設(shè)置查詢(xún)開(kāi)始的第幾條數(shù)據(jù),這里是從第1條開(kāi)始*/
      query.setMaxResults(PageSize);
    /*設(shè)置查詢(xún)數(shù)據(jù)條數(shù),這里是5條*/
      query.setCacheable(true);
    /*設(shè)置一級(jí)緩存*/
      }else{
       Integer p = (Integer.valueOf(pagenum)-1) * PageSize;
       query.setFirstResult(p);
       query.setMaxResults(PageSize);
       query.setCacheable(true);
      }
      return query.list();
     }
    }

    然后需要解決的是一些數(shù)據(jù)傳遞,類(lèi)型轉(zhuǎn)換和在view層顯示的問(wèn)題,主要代碼如下:

    在ACTION里:
    String strpagenum = request.getParameter("pagenum");
      List results= loginManage.hfind(strpagenum);
      Integer amountPage = loginManage.amountPage();
        if(results!=null){
                 HttpSession session=request.getSession();
                 session.setAttribute("results",results);
                 session.setAttribute("amountPage",amountPage);
                 return mapping.findForward("ok");
             }
        return mapping.findForward("fail");

    在view視圖里:
    顯示每頁(yè)數(shù)據(jù)的代碼:

     <logic:iterate id="element" name="results">    <tr>
       <td width="100"><input type="checkbox" name="select" value="<bean:write name="element" property="id"/>"><bean:write name="element" property="id"/></td>
       <td width="100"><bean:write name="element" property="name"/> </td>
       <td width="100"><bean:write name="element" property="password"/></td>
       </tr></logic:iterate>

    顯示頁(yè)碼的代碼:
    <%
       int i;
      int a=Integer.parseInt(session.getAttribute("amountPage").toString());
       for (i=1;i<=a;i++){
       out.println("<tr>");  
              out.println("<td><a href='display.do?pagenum="+ i +"'>"+ i +"</a></td>");    
              out.println("</tr>");    
       }
        %>


    posted on 2008-01-10 18:55 lzj520 閱讀(2955) 評(píng)論(6)  編輯  收藏 所屬分類(lèi): Struts1Spring 、個(gè)人學(xué)習(xí)日記 、Hibernate
    主站蜘蛛池模板: 亚洲精品99久久久久中文字幕| 丝瓜app免费下载网址进入ios| 亚洲一级免费毛片| 久久久亚洲精品视频| 水蜜桃视频在线观看免费播放高清| 亚洲av无码国产精品色在线看不卡| 亚洲码和欧洲码一码二码三码| 啦啦啦中文在线观看电视剧免费版 | 久久国产免费福利永久| 亚洲欧洲国产成人精品| 国产精品入口麻豆免费观看| 亚洲AV综合色区无码二区爱AV| 无码日韩精品一区二区免费| 亚洲依依成人亚洲社区| 日本高清免费网站| 菠萝菠萝蜜在线免费视频| 亚洲国产V高清在线观看| 91视频免费观看| 亚洲成Av人片乱码色午夜| 99热这里只有精品免费播放| 亚洲欧洲日本天天堂在线观看| 97无码免费人妻超级碰碰夜夜| 亚洲欧洲av综合色无码| 亚洲福利中文字幕在线网址| 爽爽爽爽爽爽爽成人免费观看| 亚洲一区二区三区四区在线观看| 午夜国产精品免费观看 | 成人午夜免费视频| 亚洲国产精品久久久天堂| 嘿嘿嘿视频免费网站在线观看| 亚洲精品无码久久久久牙蜜区| 国产成人亚洲精品影院| 99re6在线精品视频免费播放 | fc2成年免费共享视频网站| 亚洲国产精品自在在线观看| 毛片a级毛片免费观看免下载| 成人午夜免费视频| 亚洲一区二区三区不卡在线播放| 日本不卡在线观看免费v| 久久精品国产免费一区| 亚洲欧洲免费无码|