Afficher le nouveau enregistrement dans la liste. - Java - Programmation
MarshPosté le 18-03-2015 à 04:13:17
Bonjour à tous,
J'ai un problème de stockage d'une date fraichement créée dans une map dont voici la structure à l'initialisation dans le filtre:
Code :
if(session.getAttribute(dateSession) == null){
List<date> listedates = DateDao.ListeDesDates();
Map<Date,date> mapDate = new HashMap<Date,date>();
for(date dat : listedates){
mapDate.put(dat.getDate(), dat);
}
session.setAttribute("Dates", mapDate);
}
Comme vous pouvez le constater cette map contient les enregistrements du bean date dont voici le code :
Code :
package LesObjets;
import java.sql.Date;
publicclass date {
private Date date;
public Date getDate() {
return date;
}
publicvoid setDate(Date date) {
this.date = date;
}
}
Au fait, lorsque j'ajoute une date dans la table date et en cliquant sur le lien qui affiche la liste des dates enregistrées j'ai l'erreur suivante dans le navigateur:
Code :
Etat HTTP 500 - javax.el.PropertyNotFoundException: Property 'date' not found on type TPServlet.date
type Rapport d''exception
message javax.el.PropertyNotFoundException: Property 'date' not found on type TPServlet.date
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
exception
org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property 'date' not found on type TPServlet.date
java.util.Date dat1 = dateMetier.infoDate(request); /*Je pense que c'est ici ma première erreur car je dois normalement instancier mon bean date comme ça "date dat = dateMetier.infoDate(request)" mais eclipse m'impose de faire "java.util.Date dat1 = dateMetier.infoDate(request);" et de declarer la méthode "infoDate" de type Date et non date(qui est le nom de mon bean).*/
Dates.put((Date) dat1, dat);/*Et je pense que c'est ici ma deuxième erreur car normalement je dois faire Dates.put(dat.getDate(), dat) ; mais en faisant ça je remarque qu'eclipse me souligne "getDate" en rouge.Pour ce qui est de cette deuxième erreur je me dis qu'elle découle de la première car j'ai pas pu instancier mon bean comme il se doit; c'est-à-dire faire "date dat = dateMetier.infoDate(request)".*/
session.setAttribute(dateMapCons, Dates);
}
Voici le code de la méthode infoDate :
Code :
public Date infoDate(HttpServletRequest request){
String dat = getValeurSaisie(request,dateCons);
SimpleDateFormat conversion = new SimpleDateFormat(formatDate);
java.util.Date data = null;
try {
data = conversion.parse(dat);
} catch (ParseException e) {
e.printStackTrace();
}
java.sql.Date maDate = new java.sql.Date(data.getTime());
date da = new date();
traitementDate(maDate,da);
try{
if(erreurs.isEmpty()){
daoDate.EnregistrerDate(maDate);
resultat = "Date bien inserée.";
}else{
resultat = "Date non inserée.";
}
}catch(DAOException d){
setErreurs( "imprévu", "Erreur imprévue lors de la création." );
resultat = "Échec de la création de la commande : une erreur imprévue est survenue, merci de réessayer dans quelques instants.";
<c:forEach items = "${sessionScope.Dates}" var = "mapDate">
<tr>
<td><c:out value = "${mapDate.value.date}"/></td>
<td><a href = "<c:url value = "/supprimerDate"><c:param name = "date" value = "${mapDate.key}"/></c:url>"><img src = "Image/sup.png" alt = "Supprimer" title = "Supprimer"/></a></td>
<td><a href = "<c:url value = "/modifierDate"><c:param name = "date" value = "${mapDate.key}"/></c:url>"><img src = "Image/modif.png" alt = "Modifier" title = "Modifier"/></a></td>
</tr>
</c:forEach>
</table>
</c:otherwise>
</c:choose>
<!--<c:out value = "${sessionScope.dates}"/>
<c:out value = "${sessionScope.session}"/>-->
</body>
</html>
A mon avis si je parviens à bien instancier mon bean date (c'est-à-dire faire "date dat = dateMetier.infoDate(request)".) le problème sera sans doute résolu
Marsh Posté le 18-03-2015 à 04:13:17
Bonjour à tous,
J'ai un problème de stockage d'une date fraichement créée dans une map dont voici la structure à l'initialisation dans le filtre:
Comme vous pouvez le constater cette map contient les enregistrements du bean date dont voici le code :
Au fait, lorsque j'ajoute une date dans la table date et en cliquant sur le lien qui affiche la liste des dates enregistrées j'ai l'erreur suivante dans le navigateur:
Donc j'ai pu deduire que l'itération de la map dans la jsp ne trouve pas le nouveau enregistrement dans le bean.
Voici comment je stocke le nouveau enregistrement dans la map :
Voici le code de la méthode infoDate :
Voici comment je fais l'affichage dans la jsp :
A mon avis si je parviens à bien instancier mon bean date (c'est-à-dire faire "date dat = dateMetier.infoDate(request)".) le problème sera sans doute résolu
Merci d'avance!!!
Message édité par issouf le 18-03-2015 à 04:17:39