[JSP-Servlet] doPost ne fonctionne pas

doPost ne fonctionne pas [JSP-Servlet] - Java - Programmation

Marsh Posté le 04-01-2010 à 14:11:27    

Bonjour à tous !
 
Voila, j'obtiens une JasperException avec le Code suivant sur nimporte quel choix du Formulaire :
 

Code :
  1. private static final long serialVersionUID = 1L;
  2. public RequestDispatcher disp ;
  3. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  4. throws ServletException, IOException
  5. {
  6.  HttpSession session = ((HttpServletRequest) req).getSession(true) ;
  7.  String Attribut = (String) session.getAttribute("gestion" ) ;
  8.  if (Attribut == "choix" )
  9.  {
  10.   int choix = Integer.valueOf(req.getParameter("ferme" )) ;
  11.   choix = 1 ;
  12.   switch (choix)
  13.   {
  14.    case 1 :
  15.    disp = this.getServletContext().getRequestDispatcher("/Tableau.jsp" );
  16.    break ;
  17.    case 2 :
  18.    disp = this.getServletContext().getRequestDispatcher("/stats.jsp" );
  19.    break ;
  20.    case 3 :
  21.    disp = this.getServletContext().getRequestDispatcher("/naissance.jsp" );
  22.    break ;
  23.    case 4 :
  24.    disp = this.getServletContext().getRequestDispatcher("/poussins.jsp" );
  25.    break ;
  26.    case 5 :
  27.    disp = this.getServletContext().getRequestDispatcher("/sortie.jsp" );
  28.    break ;
  29.    case 6 :
  30.    disp = this.getServletContext().getRequestDispatcher("/entrée.jsp" );
  31.    break ;
  32.    case 7 :
  33.    disp = this.getServletContext().getRequestDispatcher("/Oeufs.jsp" );
  34.    break ;
  35.    case 8 :
  36.    disp = this.getServletContext().getRequestDispatcher("/sauvegarde.jsp" );
  37.    break ;
  38.    case 9 :
  39.    disp = this.getServletContext().getRequestDispatcher("/chargement.jsp" );
  40.    break ;
  41.    default :
  42.    break ;
  43.   }
  44.  }
  45.  else if (Attribut == "id" )
  46.  {
  47.   int id = Integer.valueOf(req.getParameter("id" )) ;
  48.   session.setAttribute ("id", id) ;
  49.   disp = this.getServletContext().getRequestDispatcher("/description.jsp" );
  50.  }
  51.  else if (Attribut == "consultation" )
  52.  {
  53.   int choix = Integer.valueOf(req.getParameter("tab" )) ;
  54.   session.setAttribute("id", choix) ;
  55.   disp = this.getServletContext().getRequestDispatcher("/choix.jsp" );
  56.  }
  57.  else if (Attribut == "tableau" )
  58.  {
  59.   int choix = Integer.valueOf (req.getParameter("OK" )) ;
  60.   Ferme ferme = (Ferme) (session.getAttribute("ferme" )) ;
  61.   int id = (Integer) (session.getAttribute("id" )) ;
  62.   disp = this.getServletContext().getRequestDispatcher("/description.jsp" );
  63.   switch (choix)
  64.   {
  65.    case 0 :
  66.    disp = this.getServletContext().getRequestDispatcher("/accueil.jsp" );
  67.    case 1 :
  68.    ferme.faireMourrir(id) ;
  69.    break ;
  70.    case 2 :
  71.    ferme.rentrerVache(id) ;
  72.    break ;
  73.    case 3 :
  74.    ferme.rentrerVache(id) ;
  75.    try
  76.    {
  77.     ferme.traireUneVache(id) ;
  78.    }
  79.    catch (AnimauxException e)
  80.    {
  81.     e.printStackTrace();
  82.    }
  83.    break ;
  84.    case 4 :
  85.    ferme.sortirVache(id) ;
  86.    break ;
  87.    case 5 :
  88.    try
  89.    {
  90.     ferme.traireUneVache(id) ;
  91.    }
  92.    catch (AnimauxException e)
  93.    {
  94.      e.printStackTrace();
  95.    }
  96.    break ;
  97.    default :
  98.    break ;
  99.   }
  100.   session.setAttribute("ferme", ferme) ;
  101.  }
  102.  else if (Attribut == "verif" )
  103.  {
  104.   int choix = Integer.valueOf (req.getParameter("Ver" )) ;
  105.   switch (choix)
  106.   {
  107.    case 0 :
  108.    disp = this.getServletContext().getRequestDispatcher("/accueil.jsp" );
  109.    break ;
  110.    case 1 :
  111.    disp = this.getServletContext().getRequestDispatcher("/Tableau.jsp" );
  112.    break ;
  113.   }
  114.  }
  115.  else //if ((session.getAttribute("gestion" )) == "accueil" )
  116.  {
  117.   disp = this.getServletContext().getRequestDispatcher("/accueil.jsp" );
  118.  }
  119.  if (disp != null)
  120.  {
  121.   disp.forward(req,resp) ;
  122.  }
  123. }


 
Voici aussi le code de la page d'accueil avec le Formulaire et une autre page JSP :
 

Code :
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
  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=ISO-8859-1">
  6.  <title>Bienvenue Dans Notre Ferme</title>
  7. </head>
  8. <body bgcolor ="white">
  9. <% session.setAttribute ("gestion", "choix" ) ; %>
  10. <h2>Faites votre choix parmis ces propositions</h2>
  11. <hr>
  12. <form name="modification" method="post" action="Ferme">
  13.  <label for="animal">Tableau des Consultations.</label>
  14.  <input type="radio" id="animal" name="ferme" value="1"></input>
  15.  <label for="lait">Visualiser les Statistiques globales.</label>
  16.  <input type="radio" id="lait" name="ferme" value="2"></input>
  17.  <label for="vache">Faire naitre une Vache.</label>
  18.  <input type="radio" id="vache" name="ferme" value="3"></input>
  19.  <label for="poussins">Faire naitre une portée de poussins.</label>
  20.  <input type="radio" id="poussins" name="ferme" value="4"></input>
  21.  <label for="sortie">Emmenez les vaches au paturage. </label>
  22.  <input type="radio" id="sortie" name="ferme" value="5"></input>
  23.  <label for="entrée">Emmenez les vaches à l'etabli. </label>
  24.  <input type="radio" id="entrée" name="ferme" value="6"></input>
  25.  <label for="ponte">Ramassez tous les oeufs. </label>
  26.  <input type="radio" id="ponte" name="ferme" value="7"></input>
  27.  <label for="sauvegarde">Sauvegarder la Ferme actuelle.</label>
  28.  <input type="radio" id="sauvegarde" name="ferme" value="8"></input>
  29.  <label for="chargement">Chargement du Fichier XML.</label>
  30.  <input type="radio" id="chargement" name="ferme" value="9"></input>
  31.  <input type="submit" name="OK" value="OK">OK</input>
  32. </form>
  33. </body>
  34. </html>


 

Code :
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2.     pageEncoding="ISO-8859-1" import="java.util.Collection, Metiers.*"%>
  3. <jsp:useBean id="ferme" class="Metiers.Ferme" scope="session" />
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7.  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  8.  <title>Tableau de Consultation</title>
  9. </head>
  10. <body bgcolor ="white">
  11. <% session.setAttribute ("gestion", "consultation" ) ; %>
  12. <h2>Tableau de Consultation</h2>
  13. <form name="form" action="Ferme" method="post">
  14. <table cellspacing="20px" border="2">
  15. <%  Collection<Animaux> tableau = ferme.getConsultation() ;
  16.  for (Animaux animal : tableau)
  17.  {
  18.   if (animal instanceof Vache)
  19.   {
  20. %>
  21.    <tr>
  22.     <td>Vache</td>
  23.     <th><%= animal.getId() %></th>
  24.     <td><%= animal.isVivante() %></td>
  25.     <td><%= animal.getAge() %></td>
  26.     <td><input type="radio" name="tab" value="<%= animal.getId() %>"></input></td>
  27.    </tr>
  28. <%
  29.   }
  30.   if (animal instanceof Poule)
  31.   {
  32. %>
  33.    <tr>
  34.     <td>Poule</td>
  35.     <th><%= animal.getId() %></th>
  36.     <td><%= animal.isVivante() %></td>
  37.     <td><%= animal.getAge() %></td>
  38.     <td><input type="radio" name="tab" value="<%= animal.getId() %>"></input></td>
  39.    </tr>
  40. <%
  41.   }
  42.  }
  43. %>
  44. </table>
  45. <hr>
  46.  <input type="submit" name="OK" value="OK">OK</input>
  47. </form>
  48. </body>
  49. </html>


 
Merci pour votre aide.
 

Reply

Marsh Posté le 04-01-2010 à 14:11:27   

Reply

Marsh Posté le 04-01-2010 à 14:47:56    

et ton exception, elle dit quoi ?
 
sinon, dans ton if (dans la seconde JSP) t'as vu que seuls Vache et Poule sont différents ?
 
tu as bien mappé ta servlet dans ton web.xml ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 04-01-2010 à 23:16:05    

Merci. En fait, la Classe Ferme n'était pas à la norme Bean. C'est la raison pour laquelle cela posait problème. Par contre, j'aimerais savoir la chose suivante :
 
Lorsqu'on écrit : application.setAttribute("ferme_verte", ferme) ; et que ensuite on effectue des opérations telles que ferme.traireVache() ; Dois-t-on réécrire ensuite application.setAttribute("ferme_verte", ferme) ; pour mettre l'attribut de session à jour ou cela se fait automatiquement.
 
Merci.

Reply

Marsh Posté le 05-01-2010 à 03:52:49    

Fais gaffe, en java tu ne peux pas tester l'égalité de deux chaînes de caractère avec ==, tu dois utiliser la méthode string.equals(autreString)
 
Pour répondre à ta question, tu ne dois mettre à jour cet attribut que si tu changes de ferme. Si tu appelles une méthode sur un objet Ferme, ta variable ferme pointera toujours sur le même objet Ferme après l'appel.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed