Bonjour tout le monde ,
J'ai un petit problème avec une JSF.
Le but de cette dernière est d'afficher des données contenues dans une base de donnée à savoir : un id , une date de début , une date de fin.
Pour cela j'utilise une dataTable dont voici le bout de code
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 <h:outputText value="#{manageValidation.essai }" /> <h:dataTable value="#{manageValidation.dataList}" var="dataItem" border="3"> <h:column> <f:facet name="header"> <h:outputText value="Selected" /> </f:facet> <h:selectBooleanCheckbox value="#{dataItem.selected}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="User" /> </f:facet> <h:outputText value="#{dataItem.occcupation.idUser}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Start" /> </f:facet> <h:outputText value="#{dataItem.occcupation.startDate}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="End" /> </f:facet> <h:outputText value="#{dataItem.occcupation.endDate}" /> </h:column> </h:dataTable>
Pour cela , j'utilise une ArrayList d'objets Occupation qui contient mes 2 dates et d'autres infos.
Le backing bean que j'utilise est le suivant :
L'objet JOccupation encapsule mon objet Occupation et lui rajoute une propriété "Selected" mais bon, ça on s'en fou.
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 public manageValidation() { try { ExternalContext context = FacesContext.getCurrentInstance().getExternalContext(); login = (loginController)((HttpSession)context.getSession(false)).getAttribute("loginController"); List<Occupation> list = login.getUser().getNonValidateOccupation(); for(int i=0 ; i<list.size() ; i++) { JOccupation jocc = new JOccupation(); System.out.println("NumUser "+list.get(i).getIdUser()); System.out.println("Date "+list.get(i).getStartDate()); jocc.setOcccupation(list.get(i)); System.out.println("Date dans jocc "+jocc.getOcccupation().getStartDate()); System.out.println("Type "+jocc.getOcccupation().getDayMode()); dataList.add(jocc); System.out.println("Date dans dataList "+dataList.get(i).getOcccupation().getStartDate()); System.out.println("Date dans dataList "+dataList.get(i).getOcccupation().getEndDate()); } } catch (Exception ex) { ex.printStackTrace(); } }
J'ai mis tout plein d'affichage (parceque je devenais dingue) , dans lesquels j'affiche la date que j'aimerais afficher. Jusque là rien d'anormal puisque la date à l'écran est bien la date se trouvant dans la base de données.
Seul problème , la date affichée dans la JSF tombe un jour trop tot. Par exemple :
Si j'ai le 30 mars 2008 dans ma BDD , j'affiche 30 mars 2008 dans mes println , mais dans la JSF il me met 29 mars 2008.
D'où cela peut-il provenir sachant que dans mon code je n'effectue jamais une opération de soustraction aux jours du mois. Au début je pensais à une mauvaise gestion quelque part avec Hibernate mais c'est quand même troublant que le println affiche la bonne date , mais pas la JSF :s
Merci d'avance ^^
EDIT : Petite précision , si je décide d'afficher la date du jour dans ma JSF , elle est bien correcte.
Partager