JSF中使用dataScroller和dataTable实现分页及其相关问题
2009-10-07 10:20
369 查看
在JSF中实现分页是很简单的,尤其是应用Tomahawk中的dataScroller组件。任何后台代码都不用写,只需配置一下就好。来看下面的例子:
<t:saveState value="#{roadForm.stationVec}"></t:saveState>
<h:dataTable id="data" value="#{roadForm.stationVec} var="vec" rows="10" >
<h:column id="column1">
<f:facet name="header">
<h:outputText value="序号" styleClass="min"></h:outputText>
</f:facet>
<h:outputText value="#{vec.num}"></h:outputText>
</h:column>
<h:column id="column2">
<f:facet name="header">
<h:outputText value="站点名称" styleClass="min"></h:outputText>
</f:facet>
<h:outputText value="#{vec.stationName}"></h:outputText>
</h:column>
<f:facet name="footer">
<t:dataScroller id="ds_sataion" for="data" fastStep="2"
paginatorMaxPages="6" paginator="true" >
<f:facet name="first">
<h:outputText value="首页 " />
</f:facet>
<f:facet name="last">
<h:outputText value="尾页 " />
</f:facet>
<f:facet name="previous">
<h:outputText value="上一页 " />
</f:facet>
<f:facet name="next">
<h:outputText value="下一页 " />
</f:facet>
</t:dataScroller>
</f:facet>
</h:dataTable>
注意:
1.这里使用的分页组件是Tomahawk提供的<t:dataScroller >组件,而不是JSF的基本组件。若使用JSF提供的分页组件的话,还得在后台写关于分页的代码,比较麻烦。
2.使用<t:dataScroller >组件需要注意几点问题:
a.在dataScroller中的facet的属性名称是固定的。必须保持一致。
b.若dataScroller在dataTable的外面,dataScroller的for属性是必须写的,用于指定与哪一个dataTable相关联。在这里dataScroller放在了dataTable的里面,for属性可以省略。
c.dataTable的rows属性必须要设置,否则组件无法分页。
d.由于数据是一次性读取,所以在翻页时数据会丢失。要使用Tomahawk的<saveState>组件(或是将数据保存到session中),将状态保存下来。
当然这种分页只是用于数据量较少的情况,如果数据量过大,那还是要在后台写分页类的。然后将其封装到DataModel中,前台页面的用法是一样的。不过,用了后台分页类进行分页,前台就无需再保存数据的状态了,把<saveState>组件去掉即可。
<t:saveState value="#{roadForm.stationVec}"></t:saveState>
<h:dataTable id="data" value="#{roadForm.stationVec} var="vec" rows="10" >
<h:column id="column1">
<f:facet name="header">
<h:outputText value="序号" styleClass="min"></h:outputText>
</f:facet>
<h:outputText value="#{vec.num}"></h:outputText>
</h:column>
<h:column id="column2">
<f:facet name="header">
<h:outputText value="站点名称" styleClass="min"></h:outputText>
</f:facet>
<h:outputText value="#{vec.stationName}"></h:outputText>
</h:column>
<f:facet name="footer">
<t:dataScroller id="ds_sataion" for="data" fastStep="2"
paginatorMaxPages="6" paginator="true" >
<f:facet name="first">
<h:outputText value="首页 " />
</f:facet>
<f:facet name="last">
<h:outputText value="尾页 " />
</f:facet>
<f:facet name="previous">
<h:outputText value="上一页 " />
</f:facet>
<f:facet name="next">
<h:outputText value="下一页 " />
</f:facet>
</t:dataScroller>
</f:facet>
</h:dataTable>
注意:
1.这里使用的分页组件是Tomahawk提供的<t:dataScroller >组件,而不是JSF的基本组件。若使用JSF提供的分页组件的话,还得在后台写关于分页的代码,比较麻烦。
2.使用<t:dataScroller >组件需要注意几点问题:
a.在dataScroller中的facet的属性名称是固定的。必须保持一致。
b.若dataScroller在dataTable的外面,dataScroller的for属性是必须写的,用于指定与哪一个dataTable相关联。在这里dataScroller放在了dataTable的里面,for属性可以省略。
c.dataTable的rows属性必须要设置,否则组件无法分页。
d.由于数据是一次性读取,所以在翻页时数据会丢失。要使用Tomahawk的<saveState>组件(或是将数据保存到session中),将状态保存下来。
当然这种分页只是用于数据量较少的情况,如果数据量过大,那还是要在后台写分页类的。然后将其封装到DataModel中,前台页面的用法是一样的。不过,用了后台分页类进行分页,前台就无需再保存数据的状态了,把<saveState>组件去掉即可。
相关文章推荐
- JSF中selectOneRadio(单选按钮)的相关问题(包括在dataTable里的循环使用)
- ASP.NET 使用DataTable在Table中实现自定义分页
- JSF中使用Myfaces实现的分页 (1)
- ssh整合问题总结--使用HibernateTemplate实现数据分页展示
- 使用Spring 实现 定时服务 的相关配置问题。
- 问题六十四:怎么用C++实现二叉查找树(binary search tree)及其相关操作
- ssh整合问题总结--使用HibernateTemplate实现数据分页展示
- 使用相关函数实现PHP处理分页
- java实现ssm分页工具类及其使用方法
- 详解约瑟夫环问题及其相关的C语言算法实现
- cocoapods的使用及其相关问题
- Spring Boot入门——JDBCTemplate使用及其相关问题解决
- selectOneRadio的相关问题包括在dataTable里的使用
- Java 相关计数问题及其实现
- CentOS 7 SSH相关使用问题及其解决办法
- JSF datatable 中使用 commandbutton 和 commandlink 的问题.
- JSF primefaces dataTable paginator 表格分页 问题
- ASP.NET 使用DataTable在Table中实现自定义分页
- SQL Server2000 索引结构及其使用 (实现小数据量和海量数据的通用分页显示存储过程)
- 使用CDI规范中的@Named标注jsf bean时,引发null问题的解决