Bonjour à tous.

J'ai une question concernant les validateurs. J'ai mon site structuré de cette façon :

Entitiy :
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*/
       ......
}
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
 
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 : 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>
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 !