luni, 25 mai 2015

[OmniFaces utilities 2.0] Add a flash scoped faces message globally or to the given client ID


[OmniFaces utilities] The addFlash() method adds a flash scoped faces message to the given clientId. Use this when you need to display the message after a redirect.

Method:
Usage:

The information stored in flash scope "survives" one redirect. Let's suppose that the below code is in page A.xhtml:

<h:form>
 <h:commandButton value="Click Me!" action="#{myBean.myAction()}"/>
</h:form>

The myAction() method perform some tasks, including generating a global INFO message and redirecting to page, B.xhtml:

import org.omnifaces.util.Messages;
...
public String myAction() {
 FacesMessage message = new FacesMessage();
 message.setSummary("This is page B!");
 message.setSeverity(FacesMessage.SEVERITY_INFO);
 // for a certain component, replace null with clientId
 Messages.addFlash(null, message);
 // do not try the Messages#add() because the message will not "survive" during redirect
 Messages.add(null, message);
 return "B?faces-redirect=true";
}

Now, in page B.xhtml, you will see the message:  This is page B!

Note Don't forget to use in page where the messages are displayed the <h:messages>, for global messages, <h:message>, for component messages, or any other approach capable to display the messages.

Niciun comentariu:

Trimiteți un comentariu