에서 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();
}
...
}
당신이 볼 수있는 바와 같이, 목표는 하나의 페이지 수를 진행하는 것입니다. 그러나 MyFaces에서 eval()을 호출하면 즉각적인 요청주기에 대해 작동하지만 다음 요청에서는 0을 반환합니다. 0 대신 null을 입력하면 NPE가 발생합니다.
pageNumber 상태는 현재 요청뿐만 아니라 구성 요소의 수명 동안 수행해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 이 코드는 Mojarra에서는 잘 동작하지만 MyFaces에서는 잘 동작하지 않습니다.
범위 = 세션? – esej
은 \ @ViewScoped ... 간략하게하기 위해 \ @SessionScoped에서 시도했습니다. 같은 결과 ... –