Bonjour à tous.
J'ai une question concernant les validateurs. J'ai mon site structuré de cette façon :
Entitiy :
Le managed bean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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*/ ...... }
et ma page JSP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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 !
Partager