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

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

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

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 825447
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

    Displaytag1.1支持在外部實現大數據量分頁。主要有兩種方式實現:

    Displaytag 1.1 offers two alternative ways for working with partial lists:

    • the first one uses the valuelist pattern, and requires that the object that you give to displaytag implements the org.displaytag.pagination.PaginatedList interface. You can pass this object to displaytag as an usual list, and it will extract paging and sorting information from it. This way is more recommended if you have to build your backend layer and you can easily follow this pattern.
    • a second way, recommended if you only have to use partial list for few tables that show a performance problem using full lists, is passing all the needed parameters as separate tag attributes (recors to be shown, page number, total number of records...)

    其中第二種方式看起來較為簡單,只需在<displaytag>中增加兩個屬性:partialList="true"size="resultSize"即可,但是在使用發現這種方式由于是在原來內存分頁的基礎上修改的,所以還是存在一些Bug(比如:分頁導航的值不會變......)

    所以這里介紹Displaytag推薦的第一種方式,即:
    實現org.displaytag.pagination.PaginatedListorg.displaytag.pagination.PaginatedList接口。

    實現PaginatedList接口:

    import  java.util.List;

    import
     org.displaytag.pagination.PaginatedList;
    import
     org.displaytag.properties.SortOrderEnum;

    /**
     * 分頁列表
     * 
     * 
    @author  John.Zhu
     * 
     
    */

    public   class  PageList  implements  PaginatedList  {
        
    /**
         * 每頁的列表
         
    */

        
    private  List list;

        
    /**
         * 當前頁碼
         
    */

        
    private   int  pageNumber  =   1 ;

        
    /**
         * 每頁記錄數 page size
         
    */

        
    private   int  objectsPerPage  =   15 ;

        
    /**
         * 總記錄數
         
    */

        
    private   int  fullListSize  =   0 ;

        
    private
     String sortCriterion;

        
    private
     SortOrderEnum sortDirection;

        
    private
     String searchId;

        
    public  List getList() 
    {
            
    return
     list;
        }


        
    public   void  setList(List list)  {
            
    this .list  =
     list;
        }


        
    public   int  getPageNumber()  {
            
    return
     pageNumber;
        }


        
    public   void  setPageNumber( int  pageNumber)  {
            
    this .pageNumber  =
     pageNumber;
        }


        
    public   int  getObjectsPerPage()  {
            
    return
     objectsPerPage;
        }


        
    public   void  setObjectsPerPage( int  objectsPerPage)  {
            
    this .objectsPerPage  =
     objectsPerPage;
        }


        
    public   int  getFullListSize()  {
            
    return
     fullListSize;
        }


        
    public   void  setFullListSize( int  fullListSize)  {
            
    this .fullListSize  =
     fullListSize;
        }


        
    public  String getSortCriterion()  {
            
    return
     sortCriterion;
        }


        
    public   void  setSortCriterion(String sortCriterion)  {
            
    this .sortCriterion  =
     sortCriterion;
        }


        
    public  SortOrderEnum getSortDirection()  {
            
    return
     sortDirection;
        }


        
    public   void  setSortDirection(SortOrderEnum sortDirection)  {
            
    this .sortDirection  =
     sortDirection;
        }


        
    public  String getSearchId()  {
            
    return
     searchId;
        }


        
    public   void  setSearchId(String searchId)  {
            
    this .searchId  =
     searchId;
        }


    }

    Contoller:
    /**
         * 分頁查詢
         * 
         * 
    @param  request
         * 
    @param
     response
         * 
    @return

         * 
    @throws  Exception
         
    */

        
    private  ModelAndView paging(HttpServletRequest request,
                HttpServletResponse response, ModelAndView mav) 
    throws  Exception 
    {
            
    //  獲取當前頁數,displaytag通過參數"page"傳遞這個值

                     int  pageNumber;
            
    if  (request.getParameter( " page " !=   null

                    
    &&   ! "" .equals(request.getParameter( " page " )))  {
                pageNumber 
    =  Integer.parseInt(request.getParameter( " page "
    ));
            }
      else   {
                pageNumber 
    =   1
    ;
            }

            PageList pageList 
    =   new  PageList();
            Map map 
    =  WebUtils.getParametersStartingWith(request,  " search_ "
    );
            Page page 
    =
     dao.query(map, pageNumber, PAGE_SIZE);
                    
    //  設置當前頁數

            pageList.setPageNumber(pageNumber);
                    
    //  設置當前頁列表

            pageList.setList(page.getResults());
                    
    //  設置page size

            pageList.setObjectsPerPage(PAGE_SIZE);
                    
    //  設置總頁數

            pageList.setFullListSize(page.getTotalCount());

            mav.addObject(
    " results "
    , pageList);

            
    return
     mav;
        }

    好了,現在直接在JSP上使用 displaytag就行了:
    < display:table  name ="${results}"  id ="row"  class ="simple nocol"  pagesize ="${pageSize}"  export ="true"  
                        decorator
    ="org.displaytag.decorator.TotalTableDecorator"
     
                        requestURI
    ="${pageContext.request.contextPath}/pageQuery.do?method=paging" >

                     
    < display:column  property ="date.time"  title ="日期"  format ="{0,date,yyyy-MM-dd}"  sortable ="false"   />
                    
    < display:column  property ="code"  title ="編碼"  group ="1"  sortable ="false"   />
                    
    < display:column  property ="name"  title ="名稱"  group ="1"  sortable ="false"   />
                     
    < display:column  property ="costTotal"  title ="總額(元)"  format ="{0,number,0,000}"  total ="true"  sortable ="false"   />

    </ display:table >
    本文轉自:http://m.tkk7.com/zJun/archive/2007/02/08/98703.html

    posted on 2007-09-15 10:21 Ke 閱讀(1676) 評論(2)  編輯  收藏 所屬分類: tag

    FeedBack:
    # re: Displaytag1.1支持在外部實現大數據量分頁 2011-06-09 17:34 liox
    request.getParameter( " page " )
    我的程序并沒有這個page參數,請問是如何配置的呢。。action.action?page=**你的page是通過這種方式得到的么?  回復  更多評論
      
    # re: Displaytag1.1支持在外部實現大數據量分頁 2011-06-17 16:57 rrr
    采用這種方法,分頁導航的值依然不會變.  回復  更多評論
      
    主站蜘蛛池模板: 一级中文字幕乱码免费| 欧美色欧美亚洲另类二区| a在线视频免费观看| 亚洲爆乳精品无码一区二区| 亚洲最大免费视频网| 亚洲欧洲日本精品| 亚洲午夜在线一区| 日本zzzzwww大片免费| 无码不卡亚洲成?人片| 亚洲日韩一页精品发布| 国产精品免费久久久久影院| 97在线线免费观看视频在线观看| 亚洲?V无码成人精品区日韩| 亚洲资源在线视频| 57pao国产成永久免费视频| 免费v片在线观看品善网| 一级一级一片免费高清| 亚洲无线码在线一区观看| 久久久国产精品福利免费| 亚洲综合久久综合激情久久| 免费观看AV片在线播放| 亚洲AV永久无码精品放毛片| 免费夜色污私人影院在线观看| 亚洲综合伊人制服丝袜美腿| 女人张开腿等男人桶免费视频| 亚洲一区二区三区首页| 久久午夜免费视频| 亚洲精品国产成人中文| 色妞WWW精品免费视频| 91情国产l精品国产亚洲区 | 最近中文字幕mv免费高清视频7| 亚洲av无码无在线观看红杏| 中文字幕免费观看| 亚洲国产一区二区三区在线观看| AV大片在线无码永久免费| 亚洲av成人片在线观看| 亚洲色偷偷综合亚洲AVYP| 国产成人午夜精品免费视频| 亚洲精品国产福利在线观看| 24小时免费看片| 美女视频黄频a免费观看|