Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1817 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Afficher le nouveau enregistrement dans la liste.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher le nouveau enregistrement dans la liste.

n°2253502
issouf
Posté le 18-03-2015 à 04:13:17  profilanswer
 

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 :
  1. if(session.getAttribute(dateSession) == null){
  2.   List<date> listedates = DateDao.ListeDesDates();
  3.   Map<Date,date> mapDate = new HashMap<Date,date>();
  4.   for(date dat : listedates){
  5.    mapDate.put(dat.getDate(), dat);
  6.   }
  7.   session.setAttribute("Dates", mapDate);
  8.  }


 
 
Comme vous pouvez le constater cette map contient les enregistrements du bean date dont voici le code :
 
 

Code :
  1. package LesObjets;
  2. import java.sql.Date;
  3. public class date {
  4.    private Date date;
  5. public Date getDate() {
  6. return date;
  7. }
  8. public void setDate(Date date) {
  9. this.date = date;
  10. }
  11. }


 
 
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 :
  1. Etat HTTP 500 - javax.el.PropertyNotFoundException: Property 'date' not found on type TPServlet.date
  2. type Rapport d''exception
  3. message javax.el.PropertyNotFoundException: Property 'date' not found on type TPServlet.date
  4. description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
  5. exception
  6. org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property 'date' not found on type TPServlet.date
  7. org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
  8. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
  9. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
  10. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
  11. javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
  12. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  13. TPServlet.listeDate.doGet(listeDate.java:18)
  14. javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
  15. javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
  16. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  17. org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  18. Filtre.FiltreTP.doFilter(FiltreTP.java:100)
  19. cause mère
  20. javax.el.PropertyNotFoundException: Property 'date' not found on type TPServlet.date
  21. javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:266)
  22. javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243)
  23. javax.el.BeanELResolver.property(BeanELResolver.java:353)
  24. javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
  25. org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
  26. org.apache.el.parser.AstValue.getValue(AstValue.java:183)
  27. org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
  28. org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:967)
  29. org.apache.jsp.WEB_002dINF.listeDate_jsp._jspx_meth_c_005fout_005f1(listeDate_jsp.java:309)
  30. org.apache.jsp.WEB_002dINF.listeDate_jsp._jspx_meth_c_005fforEach_005f0(listeDate_jsp.java:266)
  31. org.apache.jsp.WEB_002dINF.listeDate_jsp._jspx_meth_c_005fotherwise_005f0(listeDate_jsp.java:229)
  32. org.apache.jsp.WEB_002dINF.listeDate_jsp._jspx_meth_c_005fchoose_005f0(listeDate_jsp.java:144)
  33. org.apache.jsp.WEB_002dINF.listeDate_jsp._jspService(listeDate_jsp.java:101)
  34. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  35. javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
  36. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
  37. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
  38. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
  39. javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
  40. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  41. TPServlet.listeDate.doGet(listeDate.java:18)
  42. javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
  43. javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
  44. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  45. org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  46. Filtre.FiltreTP.doFilter(FiltreTP.java:100)
  47. note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.54.
  48. Apache Tomcat/7.0.54


 
 
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 :
 
 

Code :
  1. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2.          DateMetier dateMetier = new DateMetier(daoDate);
  3.          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).*/
  4.          request.setAttribute(dateCons, dat1);
  5.          request.setAttribute(dateMetierCons, dateMetier);
  6.          if(dateMetier.getErreurs().isEmpty()){
  7.              HttpSession session = request.getSession();
  8.              Map<Date,date> Dates = (HashMap<Date, date> ) session.getAttribute("Dates" );
  9.              if(Dates == null){
  10.               Dates = new HashMap<Date,date>();
  11.              }
  12.              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)".*/
  13.              session.setAttribute(dateMapCons, Dates);
  14. }


 
 
Voici le code de la méthode infoDate :
 
 

Code :
  1. public Date infoDate(HttpServletRequest request){
  2.      String dat = getValeurSaisie(request,dateCons);
  3.        SimpleDateFormat conversion =  new SimpleDateFormat(formatDate);
  4.      java.util.Date data = null;
  5.  try {
  6.   data = conversion.parse(dat);
  7.  } catch (ParseException e) {
  8.   e.printStackTrace();
  9.  }
  10.      java.sql.Date maDate = new java.sql.Date(data.getTime());
  11.      date da = new date();
  12.      traitementDate(maDate,da);
  13.      try{
  14.      if(erreurs.isEmpty()){
  15.       daoDate.EnregistrerDate(maDate);
  16.       resultat = "Date bien inserée.";
  17.      }else{
  18.       resultat = "Date non inserée.";
  19.      }
  20.      }catch(DAOException d){
  21.       setErreurs( "imprévu", "Erreur imprévue lors de la création." );
  22.    resultat = "Échec de la création de la commande : une erreur imprévue est survenue, merci de réessayer dans quelques instants.";
  23.    d.printStackTrace();
  24.      }
  25.  return maDate;
  26.     }


 
 
Voici comment je fais l'affichage dans la jsp :
 
 

Code :
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>Insert title here</title>
  7. </head>
  8. <body>
  9. <c:choose>
  10. <c:when test = "${empty sessionScope.Dates}">
  11. <c:out value = "Aucune date enregistrée."/>
  12. </c:when>
  13. <c:otherwise>
  14. <table border="1">
  15. <tr>
  16. <td>Date</td>
  17. <td colspan = "2">Action</td>
  18. </tr>
  19. <c:forEach items = "${sessionScope.Dates}" var = "mapDate">
  20. <tr>
  21. <td><c:out value = "${mapDate.value.date}"/></td>
  22. <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>
  23. <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>
  24. </tr>
  25. </c:forEach>
  26. </table>
  27. </c:otherwise>
  28. </c:choose>
  29. <!--<c:out value = "${sessionScope.dates}"/>
  30. <c:out value = "${sessionScope.session}"/>-->
  31. </body>
  32. </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
 
Merci d'avance!!!


Message édité par issouf le 18-03-2015 à 04:17:39
mood
Publicité
Posté le 18-03-2015 à 04:13:17  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Afficher le nouveau enregistrement dans la liste.

 

Sujets relatifs
Liste déroulante liéesAfficher texte si l'URL contient un mot
[Python] Occurence d'une listedéverser des éléments d'une liste à l'autre
TRI TABLEAU à partir liste déroulanteCréation d'une liste d'éléments liés à un id input
Affichage sous-listeFaire une liste extensible
Besoin d'afficher le contenu de la catégorie "2"Recuperer la classe des objets d une liste
Plus de sujets relatifs à : Afficher le nouveau enregistrement dans la liste.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR