Я создал небольшой своего рода контроллер, который в зависимости от входных данных мог бы посылать его на несколько страниц, каждый с различным компонентом поддержки.Я делаю это потому, что одна страница, которая принимает номер дела, проверяет этот номер дела и затем передает его на любое количество страниц, которым требуется действительный номер дела.
Вот моя страница caseSelector:
<h:form id="form1">
<h:inputText value="#{caseSelectorBean.caseNumber}"/>
<h:inputHidden value="#{caseSelectorBean.nextPage}"/>
<h:commandButton action="#{caseSelectorBean.gotoNext}" value="submit"/>
</h:form>
мой бин правильно проверяет номер регистра, заполняет бин для следующей страницы и перенаправляет его на эту страницу.
//CaseSelectorBean
public String gotoNext() {
logger.debug("In the caseChooser, going to xpage");
logger.debug("caseNum=" + caseNumber);
if(!validateCaseNumber(caseNumber)) {
return "caseNotFound";
}
if(nextPage.equals("page1")) {
CaseDAO caseDAO = new CaseDAO();
caseInfo = caseDAO.getCaseInfo(caseNumber);
CaseInfoBean caseInfoBean = new CaseInfoBean();
caseInfoBean.setCaseInfo(caseInfo);
caseInfoBean.setCaseNumber(caseNumber);
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(
"caseInfoBean", caseInfoBean);
}
logger.debug("done with gotoNext(), returning " + nextPage);
return nextPage;
}
проблема в том, что я пытаюсь получить доступ к бину со следующей страницы,оно пустое.Я могу видеть через конструктор, он создал новый вместо того, чтобы использовать в сессии.Как бы я заставил страницу использовать созданный ею компонент?
Спасибо!