
Pourtant quand tu as eu l'exception
tu avais bien récupéré le getSubmittedValue sur dateDebut non ?java.lang.ClassCastException: java.lang.String connot be cast to java.util.Date

ok j'ai compris pour la modification des messages et pour l'exception:
c exactement quand je mets pas date dans le champ dateDebut et quand je renseigne dateDebut(superieure ou inférieure à dateFin) il y'a l'exception j'ava.lang.nullpointerException qui est levée. et dans les deux cas le submittedValue() renvoi null.java.lang.ClassCastException: java.lang.String connot be cast to java.util.Date
Peux-tu mettre le code du Backing bean complet

Voici le code du banking 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
25
26
27
28
29
30
31
32
33
34
35
36
37 public class Controle { private Date dateDebut; private Date dateFin; public Date getDateDebut() { return dateDebut; } public void setDateDebut(Date dateDebut) { this.dateDebut = dateDebut; } public void validatordates(FacesContext context, UIComponent component, Object object) throws ValidatorException { UIInput dateDebutUIInput = (UIInput) component.getParent().findComponent("formId:dateDebut"); Date daten2 = (Date) object; if (dateDebutUIInput.getSubmittedValue() != null) { Date daten1 = (Date) (dateDebutUIInput.getSubmittedValue()); System.out.println(daten1 + " " + daten2); if (daten1.after(daten2)) { FacesMessage message = new FacesMessage("Date de début incorrecte"); message.setSeverity(FacesMessage.SEVERITY_ERROR); throw new ValidatorException(message); } } else { System.out.println("null " + daten2); FacesMessage message = new FacesMessage("Date de début nulle"); message.setSeverity(FacesMessage.SEVERITY_ERROR); throw new ValidatorException(message); } } public void genereration(Date dateDebut, Date dateFin) { ......... } }
d'apres un bouquin bien, pour calculer la diff"rence entre deux dates
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 long time1= date1.getTime(); long time2 = date2.getTime() long diff = time2-time1; System.out.println("Difference in days =" + diff(1000*60*60*24) );
Bonjour,
si tu mets :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UIInput dateDebutUIInput = (UIInput) context.getViewRoot().findComponent("formId:dateDebut");
ça fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Date daten1 = (Date) (dateDebutUIInput.getValue());

Oui Kox2ee ça marche nickel merci infiniment.
Partager