### 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.3.2. < rich:beanValidator > available since 3.2.2

expand all

#### 6.3.2.1. Description

The <rich:beanValidator> component designed to provide validation using Hibernate model-based constraints.

#### 6.3.2.2. Key Features

- Validation using Hibernate constraints

Table 6.36. rich : beanValidator attributes

Attribute Name | Description
--- | ---
binding | JSF: A ValueExpression that evaluates to an instance of FacesBeanValidator.
profiles | This attribute defines JavaBean Validation 'groups' feature (JSR-303). It is ignored if Hibernate Validator is used.
summary | Summary message for a validation errors.

Table 6.37. Component identification parameters

Name | Value
--- | ---
component-type | org.richfaces.beanValidator
component-class | org.richfaces.component.html.HtmlbeanValidator
component-family | org.richfaces.beanValidator
renderer-type | org.richfaces.beanValidatorRenderer
tag-class | org.richfaces.taglib.beanValidatorTag

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

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

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

          <rich:beanValidator summary="Invalid email"/>

    </h:inputText>

#### 6.3.2.4. Creating the Component Dynamically Using Java

    import org.richfaces.component.html.HtmlCalendar;

    ...

    HtmlbeanValidator mybeanValidator= new HtmlbeanValidator();

    ...

#### 6.3.2.5. Details of Usage

Starting from 3.2.2 GA version Rich Faces provides support for model-based constraints defined using Hibernate Validator. Thus it's possible to use Hibernate Validators the same as for Seam based applications.

The <rich:beanValidator> component is defined in the same way as any JSF validator. Look at the example below.

    <rich:panel>

          <f:facet name="header">

                <h:outputText value="#{validationBean.progressString}" id="progress"/>

          </f:facet>

          <h:panelGrid columns="3">

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

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

                      <rich:beanValidator summary="Invalid name"/>

                </h:inputText>

                <rich:message for="name" />

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

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

                      <rich:beanValidator summary="Invalid email"/>

                </h:inputText>

                <rich:message for="email" />

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

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

                      <rich:beanValidator summary="Wrong age"/>

                </h:inputText>

                <rich:message for="age" />

                <f:facet name="footer">

                      <a4j:commandButton value="Submit" action="#{validationBean.success}" reRender="progress"/>

                </f:facet>

          </h:panelGrid>

    </rich:panel>

Please play close attention on the bean code that contains the constraints defined with Hibernate annotation which perform validation of the input data.

    package org.richfaces.demo.validation;

    import org.hibernate.validator.Email;

    import org.hibernate.validator.Length;

    import org.hibernate.validator.Max;

    import org.hibernate.validator.Min;

    import org.hibernate.validator.NotEmpty;

    import org.hibernate.validator.NotNull;

    import org.hibernate.validator.Pattern;

    public class ValidationBean {

        private String progressString="Fill the form please";

        @NotEmpty

        @Pattern(regex=".*[^\\s].*", message="This string contain only spaces")

        @Length(min=3,max=12)

        private String name;

        @Email

        @NotEmpty

        private String email;

        @NotNull

        @Min(18)

        @Max(100)

        private Integer age;

        public ValidationBean() {

        }

        /* Corresponding Getters and Setters */

        public void success() {

            setProgressString(getProgressString() + "(Strored successfully)");

        }

        public String getProgressString() {

            return progressString;

        }

        public void setProgressString(String progressString) {

            this.progressString = progressString;

        }

    }

The following figure shows what happens if validation fails

Figure 6.8. <rich:beanValidator> usage

As you can see from the example that in order to validate the <rich:beanValidator> should be nested into a input JSF or RichFaces component.

The component has the only attribute - "summary" which displays validation messages about validation errors.

#### 6.3.2.6. Relevant Resources Links

On RichFaces LiveDemo page you can see an example of <rich:beanValidator> usage and sources for the given example.

- Prev6.3.1. < rich:ajaxValidator > ...
- Top of page
- Front page
- Next6.3.3. < rich:graphValidator > ...