Мне нужно сделать страницу поиска для какого-то проекта.Поля ввода:
<h:inputText styleClass="field35" value="#{searchBean.country}"></h:inputText>
<h:inputText maxlength="20" styleClass="field35" value="#{searchBean.destination}"></h:inputText>
<rich:calendar datePattern="dd/MM/yyyy" value="#{searchBean.startDate}"></rich:calendar>
<rich:calendar datePattern="dd/MM/yyyy" value="#{searchBean.endDate}"></rich:calendar>
и после нажатия:
<h:commandButton id="cb41" action="#{searchBean.processForm}" value="Search" styleClass="button" />
Я ожидаю, что результаты будут напечатаны в разделе rich:dataTable
на той же странице.
<rich:dataTable value="#{searchBean.results}" var="journey">
В методе processForm
переменная результатов заполняется данными из базы данных, и пользователь перенаправляется на ту же страницу.
Все хорошо после первого поиска, но когда я нажимаю поиск снова, привязки между бином иполя ввода страницы потеряны.Другими словами, в методе processForm для страны, получателя, startData и endDate я получаю только нули, независимо от того, что находится в соответствующих полях на странице.
Область действия компонента - это запрос, и во всех полях есть геттеры и сеттеры.
Кто-нибудь знает, в чем может быть проблема?
Спасибо.
Edit: спасибо t-edd. Изменение области видимости для сессионной работы сработало, но это немного убивает производительность, так как весь сессионный компонент остается в сеансе постоянно (и его сложно удалить каждый раз, когда я покидаю нужную страницу).Я понимаю, почему бин уничтожен, но не следует ли создавать новый после следующего запроса с правильными значениями из моей страницы?