### Create new RichFaces Documentation Jira issue

Summary
255 characters left
Description
Environment
This will launch the RichFaces Jira page - to complete your feedback please login if needed, and submit the Jira.

JBoss.org Community Documentation

- Prev
- Next

## 6.26. < rich:graphValidator >

### 6.26.1. Description

The <rich:graphValidator> component allows to register Hibernate Validators for multiple input components.

### 6.26.2. Key Features

- Skips all JSF processing except validation

Table 6.52. rich : graphValidator attributes

Attribute Name | Description
--- | ---
binding | The attribute takes a value-binding expression for a component property of a backing bean
id | Every component may have a unique id that is automatically created if omitted
profile | This attribute is reserved till the implementation of JavaBean Validation feature (JSR-303).
summary | Summary message for a validation errors.
type | JSF Validator type, that implements GraphValidator interface.This validator is used for the Graph and input fields validation.
value | The current value for this component.

Table 6.53. Component identification parameters

Name | Value
--- | ---
component-type | org.richfaces.graphValidator
component-class | org.richfaces.component.html.HtmlgraphValidator
component-family | org.richfaces.graphValidator
renderer-type | org.richfaces.graphValidatorRenderer
tag-class | org.richfaces.taglib.graphValidatorTag

### 6.26.3. Creating the Component with a Page Tag

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

Example:

    ...

    <h:outputText value="Name:" />

           <h:inputText value="#{userBean.name}" id="name" required="true">

                  <f:validateLength minimum="3" maximum="12"/>

                  <rich:graphValidator event="onblur"/>

           </h:inputText>

    ...

### 6.26.4. Creating the Component Dynamically Using Java

Example:

    import org.richfaces.component.html.HtmlCalendar;

    ...

    HtmlgraphValidator mygraphValidator= new HtmlgraphValidator();

    ...

The <rich:graphValidator> component behaves basically the same way as the <rich:beanValidator> The deference between these two components is that in order to validate some input data with a <rich:beanValidator> component, it should be a nested element of an input component, whereas <rich:graphValidator> wraps multiple input components and validates the data received from them.

The following example demonstrate a pattern of how the <rich:graphValidator> can be used.

    ...

    <rich:graphValidator>

           <h:panelGrid columns="3">

                  <h:outputText value="Name:" />

                  <h:inputText value="#{validationBean.name}" id="name">

                         <f:validateLength minimum="2" />

                  </h:inputText>

                  <rich:message for="name" />

                  <h:outputText value="Email:" />

                  <h:inputText value="#{validationBean.email}" id="email" />

                  <rich:message for="email" />

           </h:panelGrid>

    </rich:graphValidator>

    ...

The data validation can be also performed using Hibernate Validator, the same way as it is done with <rich:beanValidator> .

The components's architecture provides an option to bind the component to a managed bean, which is done with the <value> attribute. The attribute ensures that the entered data is valid after the model is updated by revalidating the bean properties.

Please look at the example below.

    ...

    <rich:graphValidator summary="Invalid values: " value="#{dayStatistics}">

    <a4j:repeat value="#{dayStatistics.dayPasstimes}" var="pt" id="table">

    <h:outputText value="#{pt.title}" />

    <rich:inputNumberSpinner minValue="0" maxValue="24" value="#{pt.time}" id="time">

    </rich:inputNumberSpinner>

    <rich:message for="time" />

    </a4j:repeat>

    </rich:graphValidator>

    ...

Hence, the given above code will provide the functionality that is illustrated on the images below.

Figure 6.3. "Games" field did not pass validation

As you can see from the picture the "Games" field did not pass validation, as <rich:graphValidator> can be used to perform validation of a single input item.

Figure 6.4. Total sum of all input values is incorrect

The figure above shows that the entered data was revalidated after all fields were completed, and the data did not pass revalidation since the total sum was incorrect.

### 6.26.5. Relevant Resources Links

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

- Prev6.25. < rich:ajaxValidator >
- Top of page
- Front page
- Next6.27. < rich:beanValidator >