Create new RichFaces Documentation Jira issue

This will launch the RichFaces Jira page - to complete your feedback please login if needed, and submit the Jira.

JBoss.orgCommunity Documentation

6.3.3.  < rich:graphValidator > available since 3.2.2

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

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 demonstrates 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:message for="time" />
     </a4j:repeat>
</rich:graphValidator>
...

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


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.


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.

Table of <rich:graphValidator> attributes.


Visit the GraphValidator page at RichFaces LiveDemo for examples of component usage and their sources.