JBoss.orgCommunity Documentation
The <rich:beanValidator> is a component designed to provide validation using Hibernate model-based constraints
Table 6.56. rich : beanValidator attributes
Attribute Name | Description |
---|---|
binding | A ValueExpression that evaluates to an instance of FacesBeanValidator. |
summary | Summary message for a validation errors. |
Table 6.57. 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 |
To create the simplest variant of the component on a page use the following syntax:
Example:
...
<h:inputText value="#{validationBean.email}" id="email">
<rich:beanValidator summary="Invalid email"/>
</h:inputText>
...
Example:
import org.richfaces.component.html.HtmlCalendar;
...
HtmlbeanValidator mybeanValidator= new HtmlbeanValidator();
...
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" />
<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.NotEmpty;
public class ValidationBean {
@NotEmpty
@Length(min=3,max=12)
private String name;
@NotEmpty
private String email;
public ValidationBean() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
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.
On RichFaces LiveDemo page you can see an example of <rich:beanValidator> usage and sources for the given example.