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

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

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


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.

Table of <rich:beanValidator> attributes.


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