0
MyFaces的,似乎在此組件被忽略了我的電話,以getStateHelper.put():Apache MyFaces JSF2.0 bug:getStateHelper()。put不保存任何東西?
public class BFTableComponent extends UINamingContainer {
...
private void setCurrentPageNumber(int currentPageNumber) {
getStateHelper().put(PropertyKeys.currentPageNumber, currentPageNumber);
}
public int getCurrentPageNumber() {
return (Integer) getStateHelper().eval(PropertyKeys.currentPageNumber, 0);
}
public void nextPage() {
setCurrentPageNumber(getCurrentPageNumber() + 1);
updateCurrentPage();
}
public void previousPage() {
setCurrentPageNumber(getCurrentPageNumber() - 1);
updateCurrentPage();
}
...
}
正如你所看到的,在前端組件調用下一頁,我們的目標是通過一個推進頁碼。但是,在MyFaces中運行時,eval()調用將適用於立即請求生命週期,但下一個請求將返回0.如果我將null替換爲0,則獲得NPE。
pageNumber狀態需要在組件的生命週期中進行,而不僅僅是當前的請求。我究竟做錯了什麼?此代碼在Mojarra下運行良好,但不在MyFaces中運行。
scope = session? – esej 2012-04-28 20:12:17
是\ @ViewScoped ...爲簡潔起見,我在\ @SessionScoped上試過它。同樣的結果... – 2012-04-28 20:27:24