RichFaces 4.0.0.Final. JSR-303 Validation problems
pau Dec 1, 2011 9:51 AMI have some concerns with the operation of the validation of RichFaces that meets the JSR-303. My application uses Spring 3.0.5, JSF 2 with Mojarra and RichFaces 4 and Hibernate 3.6.8.
My xhtml file:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:head></h:head>
<h:form>
<rich:tabPanel id="tabPanel" selectedTab="fitxa" switchType="client" style="width:40%; margin-left:auto; margin-right:auto;">
<rich:tab id="fitxa" name="Fitxa" rendered="#{crudBlogBean.tabFitxa}">
<a4j:region>
<h:panelGrid columns="3" style="margin-left:auto; margin-right:auto;">
<h:outputLabel value="Id: " />
<h:inputText id="id" value="#{crudBlogBean.blog.id}" ><rich:validator /></h:inputText>
<rich:message for="id" />
<h:outputLabel value="Nom: " />
<h:inputText id="nom" value="#{crudBlogBean.blog.nom}"><rich:validator /></h:inputText>
<rich:message for="nom" />
<h:outputLabel value="Número: " />
<h:inputText id="numero" value="#{crudBlogBean.blog.numero}"><rich:validator /></h:inputText>
<rich:message for="numero" />
<a4j:commandButton execute="@region" actionListener="#{crudBlogBean.desar}" value="Acceptar" render="tabPanel" />
<a4j:commandButton execute="@this" actionListener="#{crudBlogBean.tornar}" value="Tornar" render="tabPanel" />
</h:panelGrid>
</a4j:region>
</rich:tab>
</rich:tabPanel>
</h:form>
</ui:composition>
My Blog Bean:
@Entity
@Table(name="Blogs")
public class Blog {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQ_BLOG")
@SequenceGenerator(name="SQ_BLOG", sequenceName="SQ_BLOGS", allocationSize = 1)
private int id;
@Size(min = 1, max = 15, message="{hola}")
private String nom;
private String descripcio;
@Max(10)
@NotNull
private int numero = 0;
@OneToMany(mappedBy="blog")
private List<Article> articles;
(get and set)
}
1. The validation works fine. My first question is, does the validator is instantiated by RichFaces? In my Spring configuration I have not added anything.
2. In the example RichFaces documentation (here) at objects <rich:validator /> input is added, is it necessary?
3. In the example above, on the onblur validation throws but does not launch in my exemple, only when I press the a4j: commandButton, why?
4. Finally, I understand that the validator is managed by RichFaces, to change the default messages I've achieved putting in the root ValidationMessages.properties classhpath, is there any way to put that file anywhere?