JBoss.orgCommunity Documentation
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;
@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.
Table 6.20. 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 |
On RichFaces LiveDemo page you can see an example of <rich:beanValidator> usage and sources for the given example.