I am looking for a graceful JSF way to do this and was wondering if there was any commonly accepted practice for doing this.
When I navigate from one page to another, I want the new page to show a FacesMessage in a h:message component (actually p:message but it should be the same thing) that was transmitted from the last page.
So for example, if a user clicks a "Create Document" button it navigates to a new page on success, and shows the success message on the new page. I want all my data-base changing operations to behave that way.
It seems that the FacesContext clears all messages on the navigation, so my closest solution looks like this:
- Store the FacesMessage object in the session bean.
- Create a method checkMessage in the message bean that calls FacesContext.getCurrentInstance().addMessage(..) and removes the message from the message bean.
- Put a EL reference to checkMessage in the destination page.
- Put a p:message in the destination page.
This seems a bit forced -- is there a better way of doing this?