當(dāng)前位置:
                    首頁 >
                            前端技术
>                            javascript
>内容正文                
                        
                    javascript
jsf集成spring_Spring和JSF集成:分页
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                jsf集成spring_Spring和JSF集成:分页
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                jsf集成spring
使用大型數(shù)據(jù)集時,通常需要以分頁格式顯示數(shù)據(jù)。 分頁是一個有趣的問題,因為它傾向于跨越應(yīng)用程序的所有層,從視圖層通過應(yīng)用程序服務(wù)一直到對數(shù)據(jù)庫的原始調(diào)用。 在獲取分頁數(shù)據(jù)時,有一些非常好的解決方案。 如果您使用的是JPA,則您可能熟悉javax.persistence.Query可用的setFirstResult()和setMaxResult()方法。 更好的是Spring Data JPA項目,該項目提供org.springframework.data.domain.Pageable和org.springframework.data.domain.Page接口,可直接在您的存儲庫中使用。 使用JSF,還有一些記錄良好的顯示和獲取分頁數(shù)據(jù)的方法。 確切的解決方案將取決于您使用的組件套件,但是大多數(shù)解決方案都基于創(chuàng)建自定義javax.faces.model.DataModel實現(xiàn)。 例如MyFaces 在其Wiki上有建議 , RichFaces在博客上發(fā)布了有關(guān)此問題的信息 , PrimeFaces提供了延遲加載數(shù)據(jù)表 。 最近,我一直在嘗試開發(fā)一些東西來減輕JSF開發(fā)人員的負(fù)擔(dān),并消除了創(chuàng)建自定義DataModel和暴露它們的支持bean的需要。 基本思想是,JSF組件將使用EL表達(dá)式代表您創(chuàng)建延遲加載的DataModel,以根據(jù)需要獲取數(shù)據(jù)。 這是一個例子: <s:pagedData var="myDataModel" value="#{userRepository.findByLastName(backingBean.lastName, pageRequest.offset, pageRequest.pageSize)}"pageSize="20" /> 這將創(chuàng)建一個myDataModel變量,該變量將通過調(diào)用userRepository.findByLastName()一次獲取20行數(shù)據(jù)。 滾動DataModel時,將多次調(diào)用EL表達(dá)式。 (我假設(shè)您使用的是EL 2.2,如果您使用的是舊服務(wù)器(例如Tomcat 6),則可能需要安裝更新的el-impl.jar 。) 每次將EL表達(dá)式稱為pageRequest變量時,都將使其可用。 此變量提供訪問以下上下文信息的權(quán)限,這些上下文信息在獲取數(shù)據(jù)頁時可能需要:| pageNumber | 要顯示的頁碼 | 
| 頁面大小 | 請求的頁面大小 | 
| 抵消 | 偏移量(第一個結(jié)果) | 
| sortColumn | 用于對數(shù)據(jù)進(jìn)行排序的列 | 
| 升序 | 如果排序是升序還是降序 | 
| 過濾器 | 要應(yīng)用的過濾條件圖 | 
翻譯自: https://www.javacodegeeks.com/2012/05/spring-jsf-integration-pagination.html
jsf集成spring
總結(jié)
以上是生活随笔為你收集整理的jsf集成spring_Spring和JSF集成:分页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 静态页面开发模式与动态页面开发模式的区别
- 下一篇: Java函数式编程:Javaslang入
