[OmniFaces utilities] The
addFlash()
method adds a flash scoped faces message of the given severity 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:
See also: Faces#getContext() | Faces#getFlash()
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 global INFO/WARN/ERROR and FATAL 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 !";
// WARN
message
private
static final String USER_WARN = "The {0} user has reached the maximum
number, {1}, of submissions !";
// ERROR
message
private
static final String FILES_UPLOADED_ERROR = "The {0} file cannot be uploaded
! File size should be smaller than {1} bytes.";
// FATAL
message
private
static final String USER_FATAL = "The database at {0} does not respond on
port {1} !";
...
// for a
certain component, replace null with clientId
public
String myAction() {
// add a INFO message as a global message in
flash scope
Object[] params = new
Object[]{"SHP", "SHX", "DBF", "SBN"};
Messages.addFlash(FacesMessage.SEVERITY_INFO,
null, FILES_UPLOADED, params);
// or
Messages.addFlash(FacesMessage.SEVERITY_INFO,
null, FILES_UPLOADED, "SHP", "SHX", "DBF",
"SBN");
// add a WARN message as a global message in
flash scope
Messages.addFlash(FacesMessage.SEVERITY_WARN,
null, USER_WARN, "Mark Rightwer", 5);
// add a ERROR message as a global message in
flash scope
Messages.addFlash(FacesMessage.SEVERITY_ERROR,
null, FILES_UPLOADED_ERROR, "order.txt", 1024);
// add a FATAL message as a global message in
flash scope
Messages.addFlash(FacesMessage.SEVERITY_FATAL,
null, USER_FATAL, "89.38.122.5", "5432");
return
"B?faces-redirect=true";
}
Now, in
page B.xhtml, you will
see these messages:
// INFO message
The SHP file
and associated extensions (SHX, DBF and SBN) were successfully uploaded !
// WARN
message
The Mark
Rightwer user has reached the maximum number, 5, of submissions !
// ERROR
message
The
order.txt file cannot be uploaded ! File size should be smaller than 1,024
bytes.
// 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, <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