我有一個使用JSF2.0,Spring3和Hibernate4的應用程序。Primefaces數據表分頁不起作用
我在Primefaces 3.4.2數據表中顯示值,問題是當我單擊分頁時,數據錶行始終保留在前10條記錄中。它不顯示接下來的10條記錄。
我的DataTable代碼
<h:form>
<p:dataTable id="dataTable" var="req" value="#{reqMB.myList}"
paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<f:facet name="header">
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="XXX" />
</f:facet>
<h:outputText value="#{req.bbbb}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="XXXXS" />
</f:facet>
<h:outputText value="#{req.kkjj}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="XXXXXOO" />
</f:facet>
<h:outputText value="#{req.nnnn}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="XXXXKK" />
</f:facet>
<h:outputText value="#{req.kkkk}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="XKKKK" />
</f:facet>
<h:outputText value="#{req.pppp}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="LLLL" />
</f:facet>
<h:outputText value="#{req.llll}" />
</p:column>
</p:dataTable>
</h:form>
ManagedBean
@Named("reqMB")
@Scope("request")
public class MyBean implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
MyService myService;
List<MyClass> myList;
public List<MyClass> getMyList() {
try {
myList= new ArrayList<MyClass>();
myList.addAll(getMyService().getMymethod());
} catch (Exception e) {
e.printStackTrace();
}
return myList;
}
我怎樣才能解決這個問題?
更新1
我注意到,當我顯示的記錄極少數分頁工作正常,但是當我展示超過1300多條記錄,那麼分頁不起作用。
我不認爲這是一個好主意,使用請求範圍表分頁...因爲你不能使用CDI視圖,我認爲會話範圍是你應該使用的範圍 – Daniel
@Daniel感謝您的建議,我確實設法使用[this]實現視圖範圍(http://cagataycivici.wordpress.com/2010/02/17/port-jsf-2-0s-viewscope-to-spring-3-0/) – user75ponic