Salut,
J'utilise JSF et richface, notamment le composant "rich:calendar", et ca se trouve ce composant peut me donner ce que je cherche, car il a pas mal d'attributs.
Si il pouvait me donner, la différence en entier en nombre de jour entre la date courante et la date séléctionné sur lui même ... ?
Mais je n'en suis pas sûr qu'on le puisse de cette manière, donc je suis passer en java :
En fait, j'ai un champ délai (int) en saisir utilisateur, accompagné d'un champ "calendar", au cas où la personne veuille signifier le délai avec une date ...
Au final en base, j'enregistre un entier délai.
Donc si l'utilisateur ne rentre qu'un délai, c'est ok, si jamais, il a saisi une date dans le "calendar" alors là je calcul la différence entre la date Courante et celle saisie, et ca doit me retourner un entier,
Voici le code :
et la fonction DelaiCalcul :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <h:column> <f:facet name="header">Délai.</f:facet> <s:decorate id="delaiField" template="layout/edit.xhtml" > <h:inputText value="#{_produit.delai}" size="1" /> jour(s) ou <rich:calendar inputSize="5" datePattern="dd/MM/yy" value="{produitAvisApprovisionnementHome.delaiCalcul()}"/> </s:decorate> </h:column>
En fait, mon problème est de savoir où mettre les fonctions, car mon champ calendar "value" devrait plutôt être égale à un "transient" du type :
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 Date delaiCalcul(){ final long MILISECONDS_PAR_JOUR = 1000 * 60 * 60 * 24; int delai = 0; Produit p = getInstance(); Date datePrevu = p.getDelaiApproDate(); if (datePrevu!= null){ System.out.println("Date définie : ....."); Date dateInstantT = new Date(); Long diff = Math.abs(datePrevu.getTime() - dateInstantT.getTime()); Long nbDay = diff/MILISECONDS_PAR_JOUR; delai = nbDay.intValue(); } else { System.out.println("Date NON NON définie : ....."); delai = p.getDelai(); } System.out.println("différence entre les dates : " + delai); return datePrevu; }
mais il faut qu'une fonction soit appellé là aussi, celle qui calcule, et me rends le bon type (entier) pour saisir en base ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <rich:calendar inputSize="5" datePattern="dd/MM/yy" value="{_produit.delaiApproDate}"/>
J'ai du mal en JSF, encore à comprendre, ou faire quoi, ou récupérér la valeur saisie (value) et où la traitée ? binding peut être ?
Merci, si ce n'est pas clair, ne pas hésiter à demander
Partager