joi, 28 mai 2015

[OmniFaces utilities 2.0] Add globally a flash scoped faces message


[OmniFaces utilities] The addFlashGlobal() method adds a flash scoped global faces message. This adds a faces message to a clientId of null. 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);       
 Messages.addFlashGlobal(message);
 // do not try the Messages#addGlobal() because the message will not "survive" during redirect
 //Messages.addGlobal(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, or any other approach capable to display the global messages.

Niciun comentariu:

Trimiteți un comentariu