joi, 28 mai 2015

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


[OmniFaces utilities] The addFlashGlobalFatal() method adds a flash scoped global FATAL faces message, 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:
User:

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 FATAL parameterized messages and redirecting to page, B.xhtml:

import org.omnifaces.util.Messages;
...
// FATAL message
private static final String USER_FATAL = "The database at {0} does not respond on port {1} !";
...
public String myAction() {
// add an FATAL message as a global message in flash scope
Object[] params = new Object[]{"89.38.122.5", "5432"};
Messages.addFlashGlobalFatal(USER_FATAL, params);
// or
Messages.addFlashGlobalFatal(USER_FATAL, "89.38.122.5", "5432");

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

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

// FATAL message
The database at 89.38.122.5 does not respond on port 5432 !

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.

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