Проблема со сбросом страницы jsp

Я работаю над страницей JSP, используя Richfaces. Моя текущая страница имеет несколько полей и кнопку добавления и сброса.

Кнопка сброса работает нормально, вызывая метод в моем backingbean, который обнуляет соответствующие поля на странице и сбрасывает некоторые другие различные значения. Проблема с моей кнопкой добавления.

Кнопка добавления вызывает метод, который проверяет значения, введенные пользователем. Когда проверка завершена, новая запись добавляется в список в нижней части страницы, и вызывается метод сброса, используемый кнопкой сброса, для сброса страницы, чтобы можно было ввести другую запись. Все работает кроме одного случая, при проверке введенной информации я хочу что-то подтвердить от пользователя. Я показываю пользователю модальную панель с опцией подтверждения и опцией отмены.

Вот тут у меня начинаются проблемы. Моя кнопка подтверждения вызывает метод в моем backingbean, который устанавливает некоторые значения, а затем вызывает мой метод добавления. Я знаю, что это не элегантно, но я не мог придумать лучшего решения. Теперь, когда метод добавления завершил выполнение, вызывается метод сброса, и на моей странице ничего не происходит. Если я нажимаю кнопку сброса, страница сбрасывается, и запись добавляется в список.
Я не понимаю, почему страница сбрасывается во всех случаях, кроме случаев, когда я показываю модальную панель. Любая помощь приветствуется.

Некоторые фрагменты кода:

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" />&nbsp;&nbsp;
    <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 "";
}

person SomeFatMan    schedule 28.06.2010    source источник


Ответы (1)


Итак, я нашел решение своей проблемы, установив rerender на моей кнопке подтверждения на modalPanel. Я настроил его на повторную визуализацию всей страницы, которая теперь правильно показывает значения сброса.

person SomeFatMan    schedule 29.06.2010