miercuri, 27 mai 2015

[OmniFaces utilities 2.0] Add in flash scope a parameterized global (or to the given client ID) INFO faces message


[OmniFaces utilities] The addFlashInfo() method adds a flash scoped INFO faces message to the given clientId, with the given message body which is formatted with the given parameters. 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 parameterized messages and redirecting to page, B.xhtml:

import org.omnifaces.util.Messages;
...
// INFO message
private static final String FILES_UPLOADED = "The {0} file and associated extensions ({1}, {2} and {3}) were successfully uploaded !";
...
// for a certain component, replace null with clientId
public String myAction() {
// add an INFO message as a global message in flash scope
Object[] params = new Object[]{"SHP", "SHX", "DBF", "SBN"};
Messages.addFlashInfo(null, FILES_UPLOADED, "SHP", "SHX", "DBF", "SBN");
// or
Messages.addFlashInfo(null, FILES_UPLOADED, params);

return "B?faces-redirect=true";
}

Now, in page B.xhtml, you will see this message:

// INFO message
The SHP file and associated extensions (SHX, DBF and SBN) were successfully uploaded !

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.

Note By default, this example uses the OmniFaces default message resolver, but you can use your own message resolver as in Working with OmniFaces Message Resolvers.

Niciun comentariu:

Trimiteți un comentariu