В моем bean-объекте сессионной области значения не сохраняются при каждом обновлении
У меня есть SessionScoped Bean, который состоит из списка и флага. Список заполняет таблицу данных в представлении xhtml. При первой загрузке список заполняется. Любая другая загрузка не должна заново заполнять список, но это происходит несмотря на проверку. Это поведение также относится к постбэкам при щелчках по команде.
@ManagedBean(name = "customerSegmentInfo")
@SessionScoped
public class CustomerSegmentInfo extends BasePage implements Serializable {
private boolean isNBACalled = false;
private List<NextBestActionDTO> nextBestActionList = null;
public List<NextBestActionDTO> getNextBestActionList() {
log.debug("----- nbaCalled: " + isNBACalled);
if(nextBestActionList == null && !isNBACalled){
log.debug("-------- getNextBestAction");
try {
nextBestActionList = this.getNbaService().getNextBestAction(this.getCustomerInfo().getCountryCode(), this.getCustomerInfo().getCustomerNo());
log.debug("---- " + nextBestActionList.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
log.debug("------ error calling nba service bean " + e);
}
isNBACalled = true;
log.debug("----- nbaCalled: " + isNBACalled);
}
return nextBestActionList;
}
public void setNextBestActionList(List<NextBestActionDTO> nextBestActionList) {
this.nextBestActionList = nextBestActionList;
}
}
Поскольку список не является нулевым с момента последней загрузки страницы и флаг также установлен в значение true, вызов getNe xtBestAction не должен выполняться, но в журналах флаг имеет значение false и, очевидно, список также является нулевым. Поведение является нерегулярным. При определенных нагрузках оно ведет себя так, как и при других.
Я пытался установить параметр javax.faces.STATE_SAVING_METHOD в файле web.xml как для сервера, так и для клиента, ничего не изменилось.
заранее спасибо