首先是myfaces tomahawk在JSF中的部署。
1、环境平台:
MyEclipse7.0
jdk1.6.0_06
apache-tomcat-6.0.x
tomahawk-1.1.6.jar
这里不用myfaces-api-1.1.5.jar,myfaces-impl-1.1.5.jar这两个包!
2、web.xml配置:
<filter>
<description>为正确使用tomahawk组件包而配置</description>
<filter-name>extensionsFilter</filter-name>
<filter-class>
org.apache.myfaces.webapp.filter.ExtensionsFilter
</filter-class>
<init-param>
<param-name>uploadMaxFileSize</param-name>
<param-value>10m</param-value>
</init-param>
<init-param>
<param-name>uploadThresholdSize</param-name>
<param-value>100</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>*.faces</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
接着在 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:t="http://myfaces.apache.org/tomahawk">
搭好平台,现在就是我们的tomahawk派上用武之地的时候了,呵呵……
tomahawk里实现分页的主要有<t:dataTable>和<t:dataScroller>,这里是两者结合使用。
<h:panelGroup id="body">
<!-- dataTable是放输出数据的表格 -->
<t:dataTable id="data" //表格的ID
var="varname" //表格的变量名
value="#{**}" //与后台数据绑定
preserveDataModel="false" //是否保存和恢复数据模型
rows="rowsnumber" //每页要显示的数据行数
>
<h:column>
<f:facet name="header">
//表头
</f:facet>
//要输出的数据
</h:column>
<h:column>
<f:facet name="header">
//表头
</f:facet>
//要输出的数据
</h:column>
…… //这里可以加你需要的列数以输出你想要的信息
</t:dataTable>
<h:panelGrid columns="1" >
<!-- dataScroller 是显示分页条,这里用了几张页面去向图片导航分页-->
<t:dataScroller id="scroll"
for="data" //绑定数据表格,要与dataTable中的id对应
fastStep="10" //快速前进或后退的页数
pageCountVar="pageCount"
pageIndexVar="pageIndex"
styleClass="scroller"
paginator="true"
paginatorMaxPages="9" //在分页导航条中可以显示的最大页数
paginatorTableClass="paginator"
paginatorActiveColumnStyle="font-weight:bold;"
immediate="true"
>
<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>
</h:panelGrid>
</h:panelGroup>
上面是比较简单的分页例子,如果你想实现其他的功能,可以在输出数据的dataTable中的<h:column>中放你要实现分页的数据即可,但要注意dataTable的id和dataScroller中的for对应,到了这里分页的效果就实现了!
由于也刚接触这一块,在学习的时候网上的资料比较少,本人也在摸索之中,可能也有不足之处,还望指点!