网站优化的意义php免费源码
web/
2025/10/1 13:49:31/
文章来源:
网站优化的意义,php免费源码,网站seo诊断湖南岚鸿诊断,中国建设银行ie下载网站jsf集成spring使用大型数据集时#xff0c;通常需要以分页格式显示数据。 分页是一个有趣的问题#xff0c;因为它倾向于跨越应用程序的所有层#xff0c;从视图层通过应用程序服务一直到对数据库的原始调用。 在获取分页数据时#xff0c;有一些非常好的解决方案。 如果您… jsf集成spring 使用大型数据集时通常需要以分页格式显示数据。 分页是一个有趣的问题因为它倾向于跨越应用程序的所有层从视图层通过应用程序服务一直到对数据库的原始调用。 在获取分页数据时有一些非常好的解决方案。 如果您使用的是JPA则您可能熟悉javax.persistence.Query可用的setFirstResult()和setMaxResult()方法。 更好的是Spring Data JPA项目该项目提供org.springframework.data.domain.Pageable和org.springframework.data.domain.Page接口可直接在您的存储库中使用。 使用JSF还有一些记录良好的显示和获取分页数据的方法。 确切的解决方案将取决于您使用的组件套件但是大多数解决方案都基于创建自定义javax.faces.model.DataModel实现。 例如MyFaces 在其Wiki上有建议 RichFaces在博客上发布了有关此问题的信息 PrimeFaces提供了延迟加载数据表 。 最近我一直在尝试开发一些东西来减轻JSF开发人员的负担并消除了创建自定义DataModel和暴露它们的支持bean的需要。 基本思想是JSF组件将使用EL表达式代表您创建延迟加载的DataModel以根据需要获取数据。 这是一个例子 s:pagedData varmyDataModel value#{userRepository.findByLastName(backingBean.lastName, pageRequest.offset, pageRequest.pageSize)}pageSize20 / 这将创建一个myDataModel变量该变量将通过调用userRepository.findByLastName()一次获取20行数据。 滚动DataModel时将多次调用EL表达式。 我假设您使用的是EL 2.2如果您使用的是旧服务器例如Tomcat 6则可能需要安装更新的el-impl.jar 。 每次将EL表达式称为pageRequest变量时都将使其可用。 此变量提供访问以下上下文信息的权限这些上下文信息在获取数据页时可能需要 pageNumber 要显示的页码 页面大小 请求的页面大小 抵消 偏移量第一个结果 sortColumn 用于对数据进行排序的列 升序 如果排序是升序还是降序 过滤器 要应用的过滤条件图 在上面的示例中创建的DataModel的一个问题是总行数未知。 为了获得此信息我们需要提供一个附加表达式 s:pagedDatavalue#{userRepository.findByLastName(backingBean.lastName,pageRequest.offset, pageRequest.pageSize)}rowCount#{userRepository.countByLastName(backingBean.lastName)} / 上面的示例还删除了var和pageSize属性这将使用默认页面大小10并使用变量名pagedData 。 如果您使用过Spring Data您可能已经注意到pageRequest变量与org.springframework.data.domain.Pageable接口的相似pageRequest 。 实际上只要Spring Data在您的类路径上 pageRequest就可以pageRequest为Pageable 。 此外该组件可以理解org.springframework.data.domain.Page对象因此您不再需要rowCount表达式。 这是一个示例该示例调用spring数据存储库并使用MyFaces Tomahawk组件显示数据。 此示例还允许您通过单击列标题来对数据进行排序 s:pagedData value#{userRepository.findByLastName(backingBean.lastName, pageRequest)} /
t:dataTable value#{pagedData} rows#{pagedData.pageSize}sortColumn#{pagedData.sortColumn} sortAscending#{pagedData.sortAscending} varusert:columnf:facet nameheadert:commandSortHeader columnNamenameh:outputText valueUser Name //t:commandSortHeader/f:faceth:outputText value#{user.name} //t:columnf:facet namefootert:dataScroller paginatortrue paginatorMaxPages9 //f:facet
/t:dataTable 我们的最后一个诀窍是确保使用PrimeFaces时创建的DataModel与org.primefaces.model.LazyDataModel兼容。 这里是与上面相同的示例但是使用了PrimeFaces组件 s:pagedData value#{userRepository.findByLastName(backingBean.lastName, pageRequest)} /
p:dataTable value#{pagedData} rows#{pagedData.pageSize} paginatortrue lazytrue varuserp:column headerTextUser Name sortBy#{user.name}h:outputText value#{user.name} //p:column
/p:dataTable 如果要查看任何代码可以在GitHub上找到 查看org.springframework.springfaces.page.ui和org.springframework.springfaces.model软件包。 我也有一个显示页面标记的基本示例应用程序。 与往常一样此代码是一个不断变化的目标因此您在运行演示时可能会遇到一些问题。 参考 集成Spring和JavaServer Faces Phil Webb博客博客中我们的JCG合作伙伴 Phillip Webb的分页 。 翻译自: https://www.javacodegeeks.com/2012/05/spring-jsf-integration-pagination.htmljsf集成spring
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85087.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!