message rich:message HtmlMessage

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

## Creating the Component with a Page Tag

To create the simplest variant of message on a page, use the following syntax:

Example:

    ...
     	<rich:message for="id"/>
    ...

## Creating the Component Dynamically Using Java

Example:

    import org.richfaces.component.html.HtmlRichMessage;
    ...
    HtmlRichMessage myMessage = new HtmlRichMessage();
    ...

## Details of Usage

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 to be displayed
- Provides possibility to add some marker to message. By default marker element isn't shown

Set of facet which can be used for marker defining:

- passedMarker. This facet is provided to allow set a marker to be displayed if there is no message
- errorMarker. This facet is provided to allow set a marker to be displayed if there is a message with a severity class of "ERROR"
- fatalMarker. This facet is provided to allow set a marker to be displayed if there is a message with a severity class of "FATAL"
- infoMarker. This facet is provided to allow set a marker to be displayed if there is a message with a severity class of "INFO"
- warnMarker. This facet is provided to allow set a marker to be displayed if there is an message with a severity class of "WARN"

The following example shows different variants of customization of the component. The attribute 'passedLabel' is used for definition the label to be displayed when no message appears. But the message component isn't appears before the form submission even with passed state defined (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.gif"/>
          		</f:facet>
    			<f:facet name="passedMarker">
          			<h:graphicImage url="/image/passed.gif"/>
          		</f:facet>
    		</rich:message>
    ...

## Look-and-Feel Customization

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.

## Definition of Custom Style Classes

On the screenshot there are classes names that define styles for component elements.

Classes names

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 and define necessary properties in them.

To change styles of particular <rich:message> components, define your own style classes in the corresponding <rich:message> attributes.

## Relevant Resources Links

Here you can see the example of <rich:message> usage and sources for the given example.