乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      DisplayTag 分頁

       旭龍 2011-06-21

      DisplayTag一直以來為人們所詬病的缺點就是它的裝載數(shù)據(jù)的方式: 一次性把所有數(shù)據(jù)讀取到內(nèi)存中,然后再分頁顯示。這樣做的后果就是在處理大批量數(shù)據(jù)時力不從心,可用性急劇下降,并且在翻頁顯示的僅僅是內(nèi)存中的數(shù)據(jù)而不是實時數(shù)據(jù).因此人們往往只是在實現(xiàn)小型項目的小數(shù)量表格分頁顯示時才想到DisplayTag,并且因為考慮到項目的擴展往往最終棄用DiaplayTag.
      但是發(fā)布于本月12日的1.1版本徹底解決了這個問題,新版的DisplayTag提供了兩種方式實現(xiàn)部分裝入數(shù)據(jù):
      (1)實現(xiàn)接口 org.displaytag.pagination.PaginatedList,用戶可以實現(xiàn)這個接口用來代替以前傳入DisplayTag的list對象,DisplayTag將認(rèn)為分頁和排序的動作已經(jīng)由外部動作執(zhí)行了,而不會使用 原來的分頁方式(即全部讀入內(nèi)存).但是這樣用戶需要自己編寫分頁和排序代碼;
      (2)設(shè)置相應(yīng)參數(shù),告訴DisplayTag傳入的數(shù)據(jù)集由外部分頁和排序,而不使用默認(rèn)的方式.比如:

      <display:table name="testList" sort="external" defaultsort="1" pagesize="20" id="element" partialList="true" size="resultSize">
      其中:
      sort="external" 告訴DisplayTag傳入的數(shù)據(jù)集已經(jīng)由外部程序排好序了..
      defaultsort="1" 說明默認(rèn)是升序(Descending is 2, Ascending is 1);
      partialList="true" 說明部分裝入數(shù)據(jù);
      pagesize="20" 每頁顯示記錄數(shù);
      size="resultSize" 顯示記錄的總條數(shù)(此參數(shù)結(jié)合PageSize,使得表格在只拿到某一頁的完整數(shù)據(jù)的同時,可以知道會有多少頁,并將其他的頁數(shù)也列舉出來,當(dāng)用戶實際翻頁時才去獲取當(dāng)頁數(shù)據(jù));

      displaytag(partialList="true")分頁例子JSP:

      <% @tagliburi = " /WEB-INF/displaytag.tld " prefix = " display " %>

      < display:table name ="resultList" pagesize ="100" requestURI ="listLog.do" sort ="external" id ="row" partialList ="true" size ="resultSize" > 
      < display:column property ="operdate" title ="操作時間" ></ display:column > 
      < display:column property ="pername" title ="操作人員" ></ display:column > 
      < display:column property ="opertype" title ="操作類型" ></ display:column > 
      </ display:table > 
      name="resultList" 將記錄集存在session或者request中的鍵值
      pagesize="100" 每頁顯示100條數(shù)據(jù)
      sort="external" 外部排序
      id="row" 表格id值,用于程序得相關(guān)的參數(shù)
      partialList="true" 分段從數(shù)據(jù)庫中讀數(shù)據(jù)
      size="resultSize" 記錄的總條數(shù),用于計算總頁數(shù)


      Controller:

      // 頁數(shù)的參數(shù)名 
      StringpageIndexName = new org.displaytag.util.ParamEncoder( "row" ).encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);
      // 每頁顯示的條數(shù) 
      int pageSize = 100 ;
      // 當(dāng)前頁 
      int pageIndex = GenericValidator.isBlankOrNull(request.getParameter(pageIndexName)) ? 0 Integer.parseInt(request.getParameter(pageIndexName)) - 1 );

      // 統(tǒng)計總記錄數(shù)的sql語句 
      int resultSize = logDao.getAllCount();
      // 取得當(dāng)前頁數(shù)據(jù) 
      ListresultList = logDao.getLogList( int pageIndex, int pageSize);

      try {
      request.setAttribute( " resultList " ,resultList); // 把結(jié)果存入request 
      request.setAttribute( " resultSize " , new Integer(rs.getInt( 1 ))); // 將總記錄數(shù)保存成Intger實例保存在request中 
      } catch (Exceptionex) {
      ex.printStackTrace();
      }

      其中 logDao.getAllCount() 和 logDao.getLogList(intpageIndex,intpageSize),根據(jù)不同持久層有不同實現(xiàn),此處略。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多