C'est déjà fait. j'ai édité le message et j'ai mis le bon Id dans le code du validateur mais le problème reste le même.
Version imprimable
Pourtant quand tu as eu l'exception
tu avais bien récupéré le getSubmittedValue sur dateDebut non ?Citation:
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.Citation:
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:
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:
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 :
etCode:
1
2 UIInput dateDebutUIInput = (UIInput) context.getViewRoot().findComponent("formId:dateDebut");
ça fonctionneCode:
1
2 Date daten1 = (Date) (dateDebutUIInput.getValue());
Oui Kox2ee ça marche nickel merci infiniment.