- 浏览: 287919 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (121)
- jsf (16)
- 技术 (1)
- seam (27)
- jpa/hibernate (6)
- seam-对话 (3)
- 复用组件 (1)
- java基础 (18)
- JBOSS (1)
- Facelets (3)
- EL表达式 (2)
- 正则表达式 (1)
- sogi (2)
- 工具 (2)
- 设计模式/重构 (2)
- 项目管理-maven (5)
- EJB (1)
- ClassLoader (2)
- eclipse (1)
- jQuery (0)
- seam2源码分析 (0)
- osgi (0)
- TEST (0)
- 日志记录 (1)
- 批处理工作流 (0)
- 业务需求 (0)
- 语言 (2)
- 架构 (2)
- svn (1)
- sql (1)
- 异常处理 (1)
- mybatis (2)
- http (2)
- 代码可读性 (3)
- 配置化 (0)
- 错误恢复 (0)
- 状态查询 (1)
- 误操作恢复 (0)
- 工作安排 (0)
- 自动化 (0)
- 解耦 (1)
- 交流 (1)
- spring (6)
- 代码质量 (2)
- 方案 (1)
- 分布式 (1)
- mvc (2)
最新评论
-
luchuanbaker:
经过测试,实际上,mybatis并没有此问题,我也碰到了这样的 ...
mybatis 异常不友好 举例 -
huang882088:
jboss的war发布到tomcat里报这个错误怎么办?
classloader常见问题总结 -
yourenyouyu2008:
大型,可持续扩展的系统适合使用静态语言。大型系统中的部分地方可 ...
Nuxeo公司探秘:从Python迁移到Java -
yourenyouyu2008:
既然Nuxeo同时使用了Pytho ...
Nuxeo公司探秘:从Python迁移到Java -
panshunchang:
还有一种可能,真的缺这个jar包,在tomcat lib目录下 ...
classloader常见问题总结
分页有两种情况,一种是将数据一次全部读取,然后再内存中分页;另一种是每次只获取一页的内容。这两种情况都应当在系统中用到,但他们对应的情况不同。一次全部读取的适用于小数据量,比如一个订单下的全部订单明细;而分页查询的情况适用于顶层对象的不同查询条件下的列表,比如全部订单列表。
内存分页
由标准分页组件来实现,比如rich:datascroller,它的明显优点是和要分页的内容是分离的。
这种情况特别适用于hibernate、jpa等支持的实体的列表属性,比如一个订单的全部订单明细,当我们获取一个订单时,其实它的全部明细已经被获取(可能是延迟加载), 然后由分页组件来分页显示
<a:region>
<h:dataTable width="483" id="carList" rows="1" columnClasses="col"
value="#{dataTableScrollerBean.allCars}" var="category">
<f:facet name="header">
<rich:columnGroup>
<h:column>
<h:outputText styleClass="headerText" value="Make" />
</h:column>
</rich:columnGroup>
</f:facet>
<h:column>
<h:inputText value="#{category.make}" />
</h:column>
</h:dataTable>
<rich:spacer height="30" />
<rich:datascroller align="left" ajaxSingle="false" for="carList" ajaxSingle="false" maxPages="20" />
</a:region>
还有一种情形非常普遍,那就是分页且带编辑,就是说可以分页批量修改订单明细的内容,然后一起更新到数据库,这需要在内存中保存住该列表,最普通的做法是放入session中,而seam给出了一种更好的解决方案:对话,利用了session存放数据的功能,而又能及时清除session(不需要手工维护session)。当点击分页操作时,会将页面上列表中的输入框中的内容更新到对应的后台list中,最终保存时将整个list保存即可。
问题:当<rich:datascroller ajaxSingle="false"不为false时不会执行table中输入组件的解码,也就不会将页面的输入值更新到list中,在外面加上a:region表明这提交这个区域里的组件,这样外面的输入框就不会执行验证了。
查询分页
查询分页目前我还见过有支持的组件,这种分页需要处理两方面的任务,1)获取分页数据
2)页面显示分页控制
我目前知道的比较好的方法是seam提供的query框架,详见seam文档。
做点补从:
seam的query框架的后台部分已经是相当完善了,缺乏的是分页的页面展现,我们简单的将分页封装成一个组件,这样所有使用分页的页面都可以简单的引用了。
分页组件
文件名:/template/page.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:rich="http://richfaces.org/rich"
>
<ui:composition>
<h:commandLink view="#{linkurl}" rendered="#{searchbean.previousExists}" value="首页">
<f:param name="firstResult" value="0"/>
</h:commandLink>
 
<h:commandLink view="#{linkurl}" rendered="#{searchbean.previousExists}" value="上一页">
<f:param name="firstResult" value="#{searchbean.previousFirstResult}"/>
</h:commandLink>
 
<h:commandLink view="#{linkurl}" rendered="#{searchbean.nextExists}" value="下一页">
<f:param name="firstResult" value="#{searchbean.nextFirstResult}"/>
</h:commandLink>
 
<h:commandLink view="#{linkurl}" rendered="#{searchbean.nextExists}" value="未页">
<f:param name="firstResult" value="#{searchbean.lastFirstResult}"/>
</h:commandLink>
 
共#{searchbean.resultCount}条记录,共#{searchbean.pageCount}页,每页#{searchbean.maxResults}条,当前第
<h:outputText value="#{searchbean.firstResult/searchbean.maxResults+1}">
<f:convertNumber integerOnly="true"/>
</h:outputText>
页
</ui:composition>
</html>
使用分页组件
<h:dataTble>
..........
</h:dataTable>
<!--分页组件-->
<ui:include src="/template/page.xhtml">
<ui:param name="searchbean" value="#{jsys_search}"/><!--query ->
<ui:param name="linkurl" value="/transfer/transferBrowseList.xhtml"/><!--本页面-->
</ui:include>
评论
发表评论
-
spring seam比较
2014-01-14 14:06 9621)获取框架中的bean spring通过静态方法中传递 ... -
Nuxeo公司探秘:从Python迁移到Java
2013-07-21 10:57 1092成立于2000年的Nuxeo公 ... -
自定义组件问题
2013-03-01 10:14 01)ios:dataTable组件中不加buttonPane ... -
seam中内嵌的事务回滚拦截器RollbackInterceptor
2012-12-28 15:17 2124seam中有两种事务管理方 ... -
使用JTA的事务同步机制实现分布式事务j的功能avax.transaction.Synchronization
2012-12-05 18:43 0分布式事务强大功能,但也会带来性能和管理上的压力(这是听专家门 ... -
seam中的test
2012-04-25 11:25 0seam中提供了一些非seam环境下的unit testing ... -
Hibernate的FlushMode 和seam对话中的FlushMode
2012-02-21 17:29 0hibernate提供了5种flushmode。 1) NE ... -
seam 中的注释分类
2012-02-14 11:08 0seam中注释主要分为2大类,seam组件对象构造阶段的注释和 ... -
seam2 热部署
2011-09-30 10:25 1206seam能很好地支持 页面(faceslet)、非ejb cl ... -
使用长对话的"manual" flush-mode ,多操作一次提交
2011-03-24 10:27 1549一次长对话访问中可以包括多个页面,每个页面只处理部分数据,但不 ... -
seam 属性配置与installed="false"的冲突
2011-03-08 15:09 1127问题 在测试和运行环境使用不同的事务配置,默认不需要指定事务 ... -
最简单的richfaces tree使用方式
2010-10-30 12:54 2368richfaces tree提供的示例都是一次全部构造出树,对 ... -
page scope介绍及用途
2010-06-02 00:13 6315jsf1.2只提供了3中作用域,application、ses ... -
seam框架中@Unwrap的使用示例
2009-09-07 10:07 16661) 把FacesContext当seam组件使用,可以直接 ... -
基于seam技术的中文网站
2009-09-05 16:28 1372基于seam的中文网站,欢迎大家提供实际的seam项目 ht ... -
在seam项目启动后执行数据库操作
2009-07-15 15:33 1800项目启动时执行些初始化数据操作,问题是事务不能提交,这样虽然方 ... -
基于seam-gen的热部署(hot deploy)相关问题
2009-07-06 12:04 1498使用seam-gen生成的seam项目是支持热部署的。 ... -
提升jsf/seam性能
2009-05-23 22:07 1469转载:http://www.jsfcentral.com/ar ... -
根据组件名字获取组件对象Component.getInstance(String name)
2009-05-05 22:02 4051Component.getInstance(String ... -
components.xml 配置seam组件
2009-04-29 12:21 2422components.xml 的配置采用反射机制来实现,组件类 ...
相关推荐
"海量数据分页解决方案"就是为了应对这个问题而提出的。在这个demo中,我们主要关注的是如何利用存储过程来实现高效、通用的数据分页功能。 首先,我们需要理解数据分页的重要性。在网页或应用中,一次性加载所有...
SSM分页解决方案是Web开发中常见的需求,它涉及到SpringMVC、Bootstrap和Mybatis这三个核心技术。本解决方案提供了一个完整的框架,使得开发者可以方便地在Web应用中实现数据的分页展示。 首先,SpringMVC作为Java ...
SSM分页解决方案基于SpringMVC、Mybatis和EasyUI框架,这三者结合能够构建出功能强大且用户友好的Web应用。以下是关于这个主题的详细讲解。 **SpringMVC** 是Spring框架的一个模块,主要负责处理Web请求。它提供了...
jQuery左右分页解决方案.rarjQuery左右分页解决方案.rarjQuery左右分页解决方案.rarjQuery左右分页解决方案.rarjQuery左右分页解决方案.rarjQuery左右分页解决方案.rar
通过学习和理解这个"jQuery左右分页解决方案",开发者不仅可以掌握如何在网页中实现分页效果,还能进一步了解jQuery的事件处理、DOM操作、样式应用和浏览器兼容性处理等关键技巧。同时,这个案例也鼓励我们思考如何...
"Struts+Spring+Hibernate通用分页解决方案"是针对基于这三大框架(Struts、Spring、Hibernate)的Java Web应用所设计的一种高效且可复用的分页策略。以下是关于这个主题的详细解释: 1. **Struts框架**:Struts是...
在本文档中,作者分享了一个非传统的数据访问函数库的实现方法,用于处理数据库的分页解决方案。这个函数库并非静态的,需要先通过`DALFactory.CreateDAL()`进行实例化。以下是这个数据访问函数库的主要功能和使用...
本资源“常用sql分页解决方案”提供了三种不同的分页方法,旨在帮助开发者更高效地实现数据检索。 一、LIMIT与OFFSET方法(MySQL) 在MySQL中,最常用的分页查询方式是使用`LIMIT`和`OFFSET`关键字。`LIMIT`用于...
github: https://github.com/ArchLL/HGSegmentedPageViewController 分页解决方案,支持cocoapods快速引入,支持自定义样式,后续计划增加更多分页样式
解决项目分页问题的经典实例 帮您解决让人头疼的分页
`MvcPager`是一款专为ASP.NET MVC设计的高效、易用的分页控件,它提供了一种简单的方式实现分页功能。 `MvcPager`的主要优点包括: 1. **异步分页**:MvcPager支持AJAX分页,这意味着用户可以在不刷新整个页面的...
本文将深入探讨如何使用JavaScript和jQuery实现一个类似百度、谷歌的智能分页解决方案,解决分页数量过多导致用户界面拥挤的问题。 首先,我们需要理解分页的基本原理。分页通常涉及到两个关键参数:每页显示的条目...
MySQL高效分页解决方案是数据库管理中的重要议题,特别是在大数据量的场景下,传统的LIMIT与OFFSET方法在处理分页时性能会显著下降。本文主要探讨了三种优化MySQL分页查询的方法,旨在提高查询效率。 首先,最基本...
**Java架构直通车——ElasticSearch深度分页解决方案** 在Java开发中,Elasticsearch作为一款强大的全文搜索引擎,常被用于海量数据的检索。然而,在处理分页查询时,特别是深度分页,会遇到一些挑战。本文将探讨...
本压缩包“超强php分页打包 通用分页 万能分页 ajax分页 google分页”提供了一系列的分页解决方案,包括了基本的PHP分页、通用的分页实现、以及结合AJAX技术的动态分页,旨在满足各种项目需求。下面将详细介绍这些...
### SQL中的分页解决方案 在数据库管理中,分页是一种常用的技术手段,它能有效地处理大量数据的查询结果,提高用户体验。本篇文章将详细介绍在三种主流数据库系统:Oracle、SQL Server 和 MySQL 中如何实现分页...
pageHelper 分页失效解决方案 PageHelper 是一款优秀的 MyBatis 分页插件,它可以非常便利的使用,使开发效率得到很大的提升。但是,在使用 PageHelper 进行分页查询时,会出现一些问题,例如当进行一对多结果映射...