RichFaces - Validateur et Entity
Bonjour à tous.
J'ai une question concernant les validateurs. J'ai mon site structuré de cette façon :
Entitiy :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public class Contact implements Serializable
{
private static final long serialVersionUID = 1L;
public Contact() {}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String lastName;
@Column(nullable = false)
private String firstName;
@Email
@Column(nullable = false)
private String mail;
/*GETTER et SETTER*/
......
} |
Le managed bean :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public class CompanyMB extends Controller
{
private Contact contact = new Contact();
public String createCompany()
{
//Création du contact
contact = contactEJB.addContact(contact);
}
public Contact getContact()
{
return contact;
}
public void setContact(Contact contact)
{
this.contact = contact;
}
} |
et ma page JSP:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
<h2>
Création d un contact
</h2>
<h:form>
<h:panelGrid columns="3">
<h:outputText value="Nom : "/>
<h:inputText id="nomContact" value="#{companymb.contact.lastName}" label="Nom">
<rich:ajaxValidator event="onblur"/>
<f:validateLength minimum="3"/>
</h:inputText>
<rich:message for="nomContact" />
<h:outputText value="Prénom : "/>
<h:inputText id="prenomContact" value="#{companymb.contact.firstName}" label="Prenom">
<rich:ajaxValidator event="onblur"/>
<f:validateLength minimum="2"/>
</h:inputText>
<rich:message for="prenomContact" />
<h:outputText value="Mail : "/>
<h:inputText id="mailContact" value="#{companymb.email}" label="Mail">
<rich:ajaxValidator event="onblur" />
</h:inputText>
<rich:message for="mailContact" />
</h:panelGrid>
<div class="zoneButton">
<h:commandButton type="submit" action="#{companymb.createCompany}" value="Ajouter cette entreprise"/>
</div>
</h:form> |
Mon soucis est que je souhaite utiliser les validateurs de RichFaces sur les propriétés du contact. Par exemple mettre un @Email et @NotEmpty sur la propriétés email de mon contact.
Mais comment puis-je le faire ?
J'ai pensé le mettre sur l'entity, mais je ne pense pas que lors de l'appel sur le onblur, le serveur va chercher jusqu'à l'entity (J'ai testé, ça n'a pas marché).
La solution serait de créer des variables dans le ManagedBean tel String Email avec dessus @Email et ensuite lié cette variable à ma propriété email de l'objet contact : mais est-ce la meilleur solution ?
Sinon si vous avec d'autre idée pour mettre en place les validateurs, selon vos expériences, n'hésitez pas !!
Merci à tous !