Я работаю над страницей jsp, используя richfaces. Моя текущая страница имеет несколько полей, а также кнопку добавления и сброса.
Кнопка сброса работает нормально, вызывая метод в моем backingbean, который обнуляет соответствующие поля на странице и сбрасывает некоторые другие различные значения. Проблема с моей кнопкой добавления.
Кнопка добавления вызывает метод, который проверяет значения, введенные пользователем. Когда проверка завершена, новая запись добавляется в список внизу страницы, и вызывается метод сброса, используемый кнопкой сброса, чтобы сбросить страницу, чтобы можно было ввести другую запись. Все работает, кроме одного случая, при проверке введенной информации я хочу что-то подтвердить от пользователя. Я показываю пользователю модалпанель с опцией подтверждения и опцией отмены.
Здесь я начинаю испытывать проблемы. Моя кнопка подтверждения вызывает метод в моем backingbean, который устанавливает некоторые значения и затем вызывает мой метод add. Я знаю, что это не элегантно, но я не мог придумать лучшего решения. Теперь, когда метод add завершил выполнение, вызывается метод reset, и на моей странице ничего не происходит. Если я нажму кнопку сброса, страница будет сброшена, и запись будет добавлена в список.
Я не понимаю, почему страница сбрасывается во всех случаях, кроме случаев, когда я показываю модальную панель. Любая помощь приветствуется.
Некоторые части кода:
Страница JSP:
<h:commandButton value="Add" style="font-size:10pt;font-weight:bold" action="#controller.add}" binding="#{controller.addButton}"/>
<h:commandButton value="Reset" action="#{controller.reset}" style="font-size:10pt;font-weight:bold"/>
модальная панель (часть страницы jsp)
<a:commandButton id="confirm" action="#{controller.proceed}" styleClass="confirmIconButton" value="Yes, proceed" />
<r:componentControl for="confirmUnchangedExpected" attachTo="confirm" operation="hide" event="onclick"/>
фасоль:
public String add() {
...
if (somethinghappend) getPanel().setRendered(true);
...
list.add(entry);
reset();
return "";
}
public String reset() {
// resets the feilds on the page
return "";
}
public String proceed() {
//change values so something does not happen
add();
return "";
}