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

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

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

    Java學(xué)習(xí)

    java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進(jìn)步

     

    在JSF中實(shí)現(xiàn)分頁(一)

    zhuan(http://www.steadyxp.com/archives/185.html)

        對于大多數(shù)Web應(yīng)用,分頁都是必不可少的功能,當(dāng)然在JSF中也一樣,我在這里用兩篇文章介紹兩種方法來展示一下,如何在JSF中實(shí)現(xiàn)分頁。本文假定你已經(jīng)對JSF有了一些簡單的了解,懂得基本配置和使用,并建立起一個blank項(xiàng)目。

         Myfaces是Apache基金會中的一個一級項(xiàng)目,除了實(shí)現(xiàn)JSF標(biāo)準(zhǔn)外,做了很多的擴(kuò)展工作,在Myfaces包中有一個擴(kuò)展包Tomahawk, 我們將主要使用其中的兩個Component實(shí)現(xiàn)分頁:一個是<t:dataTable>,另一個 是<t:dataScroller>,在第一篇里面,我們簡易的組合這兩個Component來實(shí)現(xiàn)一種簡單,但并不高效的分頁。

         下面的例子來自于Myfaces-Sample,我省去了其中和分頁邏輯無關(guān)的內(nèi)容,詳細(xì)的例子可以下載Myfaces-Sample包或者訪問http://www.irian.at/myfaces/home.jsf 查看。

         第一部分:dataTable

    <t:dataTable id=”data”
                      var=”car”
                      value=”#{pagedSort.cars}”
                      rows=”10″>
        ……
    </t:dataTable>
    在這一部分中,dataTable綁定了一個backing bean - pagedSort中的cars屬性,我們可以在這個屬性中加入數(shù)據(jù)訪問邏輯,從數(shù)據(jù)庫或者其他來源取得用于顯示的數(shù)據(jù)。比如我們可以通過 Hibernate獲取一個List,其中包含有我們用于顯示的POJOs。

    注意,dataTable中的rows屬性指的是每頁的行數(shù),是必須指定的,否則是無法進(jìn)行分頁的,如果在項(xiàng)目中會使用固定行數(shù)的分頁,建議把這個 值寫在BaseBackingBean中,并暴露一個property,供頁面調(diào)用,所以每次在頁面中就可以這么寫# {backingBean.pageSize}。

     

    第二部分:dataScroller

        <t:dataScroller id=”scroll_1″
                            for=”data”
                            fastStep=”10″
                            paginator=”true”
                            paginatorMaxPages=”9″>
                <f:facet name=”first” >
                    <t:graphicImage url=”images/arrow-first.gif” border=”1″ />
                </f:facet>
                <f:facet name=”last”>
                    <t:graphicImage url=”images/arrow-last.gif” border=”1″ />
                </f:facet>
                <f:facet name=”previous”>
                    <t:graphicImage url=”images/arrow-previous.gif” border=”1″ />
                </f:facet>
                <f:facet name=”next”>
                    <t:graphicImage url=”images/arrow-next.gif” border=”1″ />
                </f:facet>
                <f:facet name=”fastforward”>
                    <t:graphicImage url=”images/arrow-ff.gif” border=”1″ />
                </f:facet>
                <f:facet name=”fastrewind”>
                    <t:graphicImage url=”images/arrow-fr.gif” border=”1″ />
                </f:facet>
            </t:dataScroller>
        這里定義了我們用于分頁的<t:dataScroller>,最主要的是配置該分頁Component針對哪個dataTable進(jìn)行分頁的 “for”屬性,該屬性與dataTable綁定,并對其進(jìn)行分頁,在這里,綁定了第一部分中的id=”data”的dataTable,下面有很多的& lt;t:facet>是指定分頁的導(dǎo)航樣式的,這里使用了圖片作為導(dǎo)航,可以把他們改成文字形式的導(dǎo)航。

        當(dāng)然這只是最簡單,也是一種不推薦的分頁方式,因?yàn)樵诿看芜M(jìn)行分頁的時候,將會從數(shù)據(jù)庫中取回所有的記錄放入List中,然后,dataScroller 在對這個List進(jìn)行分頁,如果在數(shù)據(jù)量很大的情況下,這種方式顯然是不符合要求的,假設(shè)每條記錄占用1k內(nèi)存,數(shù)據(jù)庫中有100萬條記錄,每次要把這個 List全部讀取出來將占用1G內(nèi)存。我們需要一種Load on demand方式的讀取,也就是只在需要查看某頁的時候讀取該頁的數(shù)據(jù)。

        另外一方面,JSF的生命周期中有多個階段會調(diào)用到#{pagedSort.cars}中對應(yīng)的方法,如果在這里調(diào)用了數(shù)據(jù)訪問邏輯,就會在只顯示一次頁面的情況下進(jìn)行多次數(shù)據(jù)庫操作,也是相當(dāng)?shù)暮馁M(fèi)資源的。

        所以我們需要有更好的分頁方式去解決以上問題,下一篇我將介紹另一種方法以改善這些問題。

    posted on 2009-03-09 15:50 找個美女做老婆 閱讀(271) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲男人天堂2020| 亚洲国产精品尤物YW在线观看| 亚洲熟妇无码另类久久久| 亚洲乱码国产乱码精华| 大地资源在线观看免费高清| 亚洲免费观看在线视频| 13一14周岁毛片免费| 亚洲视频在线一区二区三区| 免费无码成人AV在线播放不卡 | 真正全免费视频a毛片| 免费无码一区二区三区蜜桃大| 亚洲中文无码mv| 麻豆精品国产免费观看| 亚洲欧美日韩综合久久久| 国产成人青青热久免费精品| 老子影院午夜伦不卡亚洲| 午夜亚洲福利在线老司机| 国产日韩久久免费影院 | h视频在线免费看| 亚洲欧洲日本在线观看| 国产视频精品免费| 手机永久免费的AV在线电影网| 亚洲成a人片在线观看日本麻豆| 国产视频精品免费视频| 亚洲国产精品久久久久婷婷软件| 久久不见久久见免费视频7| 亚洲码一区二区三区| 四虎在线免费播放| 在线观看人成视频免费无遮挡| 亚洲AV第一页国产精品| 免费阿v网站在线观看g| 国产精品无码亚洲精品2021| 国产亚洲大尺度无码无码专线| 一级毛片在线免费看| 亚洲色偷偷综合亚洲av78| 亚洲天堂中文字幕在线| 日韩免费高清大片在线| 亚洲精品成a人在线观看夫| 中文字幕亚洲图片| 免费可以看黄的视频s色| 黄色a级免费网站|