Ошибка навигации по странице JSF с NullPointerException - PullRequest
0 голосов
/ 20 ноября 2011

Я написал две страницы ... одна - форма, в которой данные были отправлены, а вторая - просто для подтверждения транзакции, которая фактически выполнила некоторые вычисления.

У меня есть управляемый компонент, то есть FormDataBean, и класс Reservation.java, из которогоЯ создаю экземпляр для каждого сделанного бронирования.Теперь у меня в конце формы есть кнопка отправки:

<h:commandButton value="Submit" action="confirmation"/>

в бине, как обычно, есть сеттеры и геттеры.в методе, который я определил, я создаю экземпляр Reservation, а затем устанавливаю переменные bean-компонентов на переменные экземпляра, например

reservation.startDate = startDate;
reservation.endDate = endDate;
reservation.checkRange();

Последний метод, т.е. checkRange (), будет использовать присвоенные значения для переменных экземпляра для переносарасчет.он должен вернуть строку успешно или неудачно.

Теперь, когда я ввожу данные в форму и нажимаю «Отправить», он просто обновляет страницу, но ничего не передается.потому что он не переходит на следующую страницу :( Есть идеи, что происходит? Мне не нужно определять правило навигации, потому что в другом проекте я выполняю простой расчет и отображаю результат на следующей странице, и он работает! Пожалуйста, советСпасибо,

Ответы [ 2 ]

0 голосов
/ 21 ноября 2011

Вы пробовали действие = "подтверждение? Face-Redirect = True"?

0 голосов
/ 20 ноября 2011

Вам не хватает, чтобы рассказать нам о некоторых более важных деталях, поэтому ответ является своего рода догадкой.

Поскольку вы не используете правила навигации, я предполагаю, что вы используете JSF 2, не так ли?

С JSF 2 вы можете напрямую установить новую цель навигации без правил навигации. Переадресация к «подтверждению» должна работать, если ваш файл результатов называется с подтверждением .xhtml. Проверь это. С помощью правила навигации вы можете переслать его другим файлом.

Эта часть должна работать независимо от остальных.

Чтобы bean-компонент не получал никаких значений, убедитесь, что вы используете правильную область видимости через аннотацию или запись в файлеface-config.xml. Поскольку у вас довольно необычный механизм проверки, вам, вероятно, придется использовать область сеанса.

Правильным способом будет использование actionlistener, который выполняет ваши проверки, а затем устанавливает навигацию в зависимости от ваших проверок. Область действия bean-компонента может быть более строгой, чем тогда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...