Myfaces組件分頁的簡單使用
Myfaces組件提供t:dataScroller標簽實現分頁,很傻瓜化。
JSF頁面:
<t:dataTable id=”userListTable” rows=”10”>
…………
</t:dataTable>
<t:dataScroller id="userListscroll"
for="userTable"
fastStep="10"
rowsCountVar="rowsCount"
displayedRowsCountVar="displayedRowsCountVar"
firstRowIndexVar="firstRowIndex"
lastRowIndexVar="lastRowIndex"
pageCountVar="pageCount"
pageIndexVar="pageIndex"
styleClass="scroller"
paginator="true"
paginatorMaxPages="9"
paginatorTableClass="paginator"
paginatorActiveColumnStyle="font-weight:bold;"
immediate="false">
<f:facet name="first" >
<h:outputText value="first"/>
</f:facet>
<f:facet name="last">
<h:outputText value="last"/>
</f:facet>
<f:facet name="previous">
<h:outputText value="previous"/>
</f:facet>
<f:facet name="next">
<h:outputText value="next"/>
</f:facet>
<f:facet name="fastforward">
<h:outputText value="fastforward"/>
</f:facet>
<f:facet name="fastrewind">
<h:outputText value="fastrewind"/>
</f:facet>
<h:outputFormat value="總記錄數:{0}條——這頁顯示了{1}條記錄——這頁顯示第{2}到第{3}條記錄——頁數:{4}/{5}">
<f:param value="#{rowsCount}" />
<f:param value="#{displayedRowsCountVar}" />
<f:param value="#{firstRowIndex}" />
<f:param value="#{lastRowIndex}" />
<f:param value="#{pageIndex}" />
<f:param value="#{pageCount}" />
</h:outputFormat>
</t:dataScroller>
要給dataTable設置id,rows(每頁要顯示的行數)
我們配置t:dataScroller的一些屬性:
for 必須指定,值對應要實現分頁的dataTable的id值。
fastStep 表示fastforward,fastrewind快進的頁數。
paginator 是否顯示頁數變化軌跡,即是否顯示1,2,3,4……
paginatorMaxPages 指定頁數變化軌跡中的數量
而dataScroller還有6個屬性用于顯示一些常用的值:
{0} rowsCountVar="rowsCount" //總記錄數{0}條
{1} displayedRowsCountVar="displayedRowsCountVar" //這頁顯示了{1}條記錄
{2} firstRowIndexVar="firstRowIndex" //這頁顯示第{2}到第{3}條記錄
{3} lastRowIndexVar="lastRowIndex" //這頁顯示第{2}到第{3}條記錄
{4} pageCountVar="pageCount" //當前所在的頁數為{4}
{5} pageIndexVar="pageIndex" //總頁數為{5}
要注意第二個屬性displayedRowsCountVar,它表示這頁顯示了多少條記錄,跟dataTable里面的rows屬性不同,rows表示每頁固定顯示多少條記錄。
對于一般少數量數據來講,這樣實現分頁就可以了,而對于海量的數據而言,需要實現數據庫分頁。