JBoss.orgCommunity Documentation
The component is used for rendering a single message for a specific component.
Highly customizable look and feel
Tracking both traditional and Ajax based requests
Optional toolTip to display the detail portion of the message
Additionally customizable with attributes and facets
Additionally provides two parts to be optionally defined: marker and label
Table 6.587. rich : message attributes
Table 6.588. Component identification parameters
Name | Value |
---|---|
component-type | org.richfaces.component.RichMessage |
component-class | org.richfaces.component.html.HtmlRichMessage |
component-family | org.richfaces.component.RichMessage |
renderer-type | org.richfaces.renderkit.html.RichMessagesHtmlBaseRenderer |
tag-class | org.richfaces.taglib.RichMessageTag |
To create the simplest variant of message on a page, use the following syntax:
Example:
...
<rich:message for="id"/>
...
Example:
import org.richfaces.component.html.HtmlRichMessage;
...
HtmlRichMessage myMessage = new HtmlRichMessage();
...
The component has the same behavior as standard <h:message> component except next two features:
It's ajaxRendered. It means that the component is reRendered after Ajax request automatically without outputPanel usage
The component optionally provides "passed" state which will be shown if no message is displayed
Provides possibility to add some marker to message. By default a marker element isn't shown
A set of facets which can be used for marker defining:
"passedMarker" . This facet is provided to allow setting a marker to display if there is no message
"errorMarker" . This facet is provided to allow setting a marker to display if there is a message with a severity class of "ERROR"
"fatalMarker" . This facet is provided to allow setting a marker to display if there is a message with a severity class of "FATAL"
"infoMarker" . This facet is provided to allow setting a marker to display if there is a message with a severity class of "INFO"
"warnMarker" . This facet is provided to allow setting a marker to display if there is a message with a severity class of "WARN"
The following example shows different variants for component customization. The attribute "passedLabel" is used for definition of the label to display when no message appears. But the message component doesn't appear before the form submission even when state is defined as passed (on initial rendering). Boolean attribute "showSummary" defines possibility to display summary portion of displayed messages. The facets "errorMarker" and "passedMarker" set corresponding images for markers.
Example:
...
<rich:message for="id" passedLabel="No errors" showSummary="true">
<f:facet name="errorMarker">
<h:graphicImage url="/image/error.png"/>
</f:facet>
<f:facet name="passedMarker">
<h:graphicImage url="/image/passed.png"/>
</f:facet>
</rich:message>
...
Table 6.589. Facets
Facet | Description |
---|---|
errorMarker | Redefines the content for the marker if there is message with a severity class of "ERROR" |
fatalError | Redefines the content for the marker if there is message with a severity class of "FATAL" |
infoError | Redefines the content for the marker if there is message with a severity class of "INFO" |
warnError | Redefines the content for the marker if there is message with a severity class of "WARN" |
passedError | Redefines the content for the marker if there is no message |
For skinnability implementation, the components use a style class redefinition method.
There are no skin parameters and default predefined values. To redefine the appearance of all <rich:message> components at once, you should only add to your style sheets style classes used by a <rich:message> component.
On the screenshot there are classes names that define styles for component elements.
Table 6.590. Classes names that define a component appearance
Class name | Description |
---|---|
rich-message | Defines styles for a wrapper element |
rich-message-marker | Defines styles for a marker |
rich-message-label | Defines styles for a label |
In order to redefine styles for all <rich:message> components on a page using CSS, it's enough to create classes with the same names (possible classes could be found in the tables above) and define necessary properties in them.
Example:
...
.rich-message-label{
font-style:italic
}
...
This is a result:
In the example the font style for message was changed.
Also it's possible to change styles of particular <rich:message> component. In this case you should create own style classes and use them in corresponding <rich:message> styleClass attributes. An example is placed below:
Example:
...
.myClass{
font-weight:bold;
}
...
The "styleClass" attribute for <rich:message> is defined as it's shown in the example below:
Example:
<rich:message ... styleClass="myClass"/>
This is a result:
As it could be seen on the picture above, the font weight for message was changed.
On the component LiveDemo page you can see the example of <rich:message> usage and sources for the given example.