I am working on a jsp page using richfaces. My current page has multiple feilds and an add and a reset button.
The reset button works fine, calling a method in my backingbean which null the appropriate fields on the page and resets some other assorted values. The issue is with my add button.
The add button calls a method which validates the values entered by the user. When the validation is done, a new entry is added to a list at the bottom of the page and the reset method used by the reset button is called to reset the page so another entry can be entered. Everything works except in one case, while validating the entered information I want to confirm something from the user. I show the user a modalpanel with a confirm option and a cancel option.
Here is where I begin to have issues. My confirm button calls a method in my backingbean which sets some values and then recalls my add method. I know that it is not elegant but I could not come up with a better solution. Now, when the add method finished executing the reset method is called and nothing happens on my page. If i click my reset button, the page resets and an entry is added to the list.
I dont understand why the page is reset in all cases except when I show the modal panel. Any help is appreciated.
Some pieces of the code:
JSP page:
<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"/>
modal panel (part of the jsp page)
<a:commandButton id="confirm" action="#{controller.proceed}" styleClass="confirmIconButton" value="Yes, proceed" />
<r:componentControl for="confirmUnchangedExpected" attachTo="confirm" operation="hide" event="onclick"/>
backing bean:
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 "";
}