jsf immediate="true" question regarding binding to session bean

Posted by jamiebarrow on Stack Overflow See other posts from Stack Overflow or by jamiebarrow
Published on 2010-03-31T15:47:19Z Indexed on 2010/03/31 19:03 UTC
Read the original article Hit count: 345

Filed under:
|

Hi,

I have a listing page that goes to an add page. The add page has a name textbox whose value is bound to a session scoped bean.

The listing page has an add button that goes via an action method to the add page. This action method clears the object that the name textbox is bound to.

I also have a cancel button on the add page, which is bound to an action method that again clears the value that the name textbox is bound to.

If nothing is set to immediate, this all works fine.

However, if I set the cancel button to immediate, if I enter values in the name field, and then click cancel, the action method is fired and clears the object in the backing bean and goes to the listing page. If I then click add, the action method clears the object again (ignore if it's best method or not) and then goes to the add page. I would now expect the add page's name textbox to be empty, but it's not?! Surely, since the add button is not immediate, the values should be re-bound and empty?

Below is the relevant XHTML for the add button on the listing page

<h:commandButton id="addButton"
                 value="Add"
                 action="#{myBean.gotoAdd}"/>

Below is the relevant XHTML for the input box on the add page (myBean is session scoped), followed by that of the cancel button on the add page.:

<h:inputText id="newName"
             value="#{myBean.newObject.name}"
             binding="#{myBean.newNameInput}"
             styleClass="name" />

<h:commandButton id="cancelButton"
                 value="Cancel" immediate="true"
                 action="#{myBean.cancelAdd}"
                 onclick="return confirm('You sure?');"/>

© Stack Overflow or respective owner

Related posts about jsf

Related posts about immediate