DataTable problème de date
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:
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 :
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
| 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();
}
} |
L'objet JOccupation encapsule mon objet Occupation et lui rajoute une propriété "Selected" mais bon, ça on s'en fou.
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.