MyFacesのは、このコンポーネントでgetStateHelper.put()に私の呼び出しを無視しているように見える:フロントエンドコンポーネントはNEXTPAGEを呼び出したときApache MyFaces JSF2.0バグ: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();
}
...
}
あなたが見ることができるように、目標は1でページ番号を進めることです。しかし、これをMyFacesで実行すると、eval()コールは即時リクエストライフサイクルで機能しますが、次のリクエストでは0が返されます.0の代わりにnullを設定すると、NPEが取得されます。
pageNumber状態は、現在の要求だけでなく、コンポーネントの存続期間中に実行する必要があります。私は間違って何をしていますか?このコードはMojarraではうまく動作しますが、MyFacesではうまく動作しません。
scope = session? – esej
は\ @ViewScopedでした...簡潔にするために私は\ @SessionScopedで試しました。同じ結果... –