Probs connexions Servlets=>JSP

Probs connexions Servlets=>JSP - Java - Programmation

Marsh Posté le 17-08-2005 à 13:29:36    

Bonjour, bonjour !!
 
Voilà, donc j'ai une servlet qui reçoit des infos d'un formulaire, enregistre ces données dans une base et en réponse affiche la liste des personnes présentes dans la base à l'aide d'une jsp.
Donc l'enregistrement sur la base se fait sans problèmes mais c'est tout... La jsp avec la liste des personnes n'est pas "appelée"...
Bon voici le code de ma méthode "doPost" :
 

Code :
  1. protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
  2.  RequestDispatcher rd = null;
  3.  if (request.getServletPath().equals("/ajout" )) {
  4.   logger.info("Demande d'ajout de personne : " );
  5.   String Civ = request.getParameter("civilite" );
  6.   String Nom = request.getParameter("nom" );
  7.   String Prenom = request.getParameter("prenom" );
  8.   String Situation = request.getParameter("situation" );
  9.   int annee = Integer.parseInt(request.getParameter("annee" ));
  10.   String Pere = request.getParameter("pere" );
  11.   String Mere = request.getParameter("mere" );
  12.   Personne p = new Personne(Civ, Nom, Prenom, annee, Situation, Pere, Mere);
  13.   try {
  14.    logger.debug("Appel pour insertion des donnees" );
  15.    ControllerPersonne.add(bd, p);
  16.   } catch (DataCreateException e) {
  17.    e.printStackTrace();
  18.   }
  19.  }
  20.  if (request.getServletPath().equals("/ajout" ) || request.getServletPath().equals("/listePersos" )) {
  21.   try {
  22.  //Méthode qui sélectionne les personnes  
  23. List personnes = ControllerPersonne.select(bd);
  24.    request.setAttribute("persos", personnes);
  25.   } catch (SelectException e) {
  26.    e.printStackTrace();
  27.   }
  28.  //Appel de la jsp
  29.                   rd = request.getRequestDispatcher("/liste.jsp" );
  30.  }
  31. }


 
Et voici la page jsp : "liste.jsp"
 

<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 
<html>
 <head>
  <title>Liste des donateurs</title>
 </head>
 
 <body>
  <p>TEST : </p>
  <c:forEach items="${persos}" var="p">
  <p>
   <table border="1" width="50%">
    <tr>
     <td><b>Civilit&eacute;</b></td>
     <td>${p.civilite}</td>
    </tr>
    <tr>
     <td><b>Nom</b></td>
     <td>${p.nom}</td>
    </tr>
    <tr>
     <td><b>Prenom</b></td>
     <td>${p.prenom}</td>
    </tr>
    <tr>
     <td><b>Ann&eacute;e</b></td>
     <td>${p.annee}</td>
    </tr>
    <tr>
     <td><b>P&egrave;re</b></td>
     <td>${p.pere}</td>
    </tr>
    <tr>
     <td><b>M&egrave;re</b></td>
     <td>${p.mere}</td>
    </tr>
   </table>
  </p>
  </c:forEach>
 </body>
</html>

 
Désolé par avance si je m'exprime mal ou si je n'ai pas donné assez de renseignements...

Reply

Marsh Posté le 17-08-2005 à 13:29:36   

Reply

Marsh Posté le 17-08-2005 à 14:10:12    

Bon je me réponds tout seul en me traitant gentiement de boulet...
J'avais oublié l'instruction "rd.forward(request, response);"  :pfff:  
 
J'ai néanmoins une autre erreur sur ma jsp qui me laisse un peu perplexe :
org.apache.jasper.JasperException: L'uri absolue: http://java.sun.com/jsp/jstl/core ne peut être résolu dans le fichier web.xml ou dans les fichiers jar déployés avec cette application
 
Une idée ??

Reply

Marsh Posté le 18-08-2005 à 10:47:36    

Bah dites donc y'a du monde pour m'aider !!
Bon alors j'arrive kan même à avancer sauf que ma page jsp n'a pas l'air de prendre en compte la boucle forEach sur la liste... En fait toutes les instructions ne sont pas prises en comptes à savoir que la page jsp (voir plus haut) m'affiche un tableau avec les valeurs ${p.civilite}, ${p.nom} etc. écrites telles quelles...
Bon donc je sollicite encore un peu d'aide on sait jamais...

Reply

Marsh Posté le 18-08-2005 à 11:56:15    

:cry:  :cry:  
Bouh j'y arrive po !!! Et c'est pas faute d'avoir cherché :fou:  
Et pis le fait de me répondre à moi même ça m'aide un petit peu psychologiquement mais c'est pas la panacée...

Reply

Marsh Posté le 18-08-2005 à 12:10:29    

t'es bien en jsp2 ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-08-2005 à 12:28:42    

Heu désolé mais comment k'on fait pour savoir la version du conteneur jsp??
Sinon je pense que oui, vu que j'ai essayé avec cette syntaxe <c:out value="${param.nom}" defaults="iconnu"/> et que ça n'a rien changé...

Reply

Marsh Posté le 18-08-2005 à 12:32:44    

jsp2 : à partir de tomcat5
et ton uri de jstl est correcte, uniquement dans ce cas. ils l'ont changée... avant, donc pour du jsp1.x, elle etait euh, differente.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-08-2005 à 12:59:09    

Heu je pense pas avoir tout exactement comprit mais puisque je travaille avec tomcat 5.5, oui je suis bien sur jsp2...
Sinon, j'ai dans mon WEB-INF, un répertoire tld qui contient le fichier c.tld... J'ai aussi implémenté mon web.xml comme ceci :
<taglib>
  <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
  <taglib-location>/WEB-INF/tld/c.tld</taglib-location>  
 </taglib>

 
Donc c'est pour ça que je vois pas pourquoi ça coince...
Ce qui est dingue c'est que j'ai l'impréssion que ma page jsp fonctionne comme une page html classique, ignorant complétement les EL...

Reply

Marsh Posté le 18-08-2005 à 13:02:41    

normalement, pas besoin de déclarer cette taglib dans ton web.xml, ni de fournir le tld... essaie un peu de virer tout ça pour voir :??:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-08-2005 à 13:03:25    

ha et pour ta derniere remarque, met un truc à la con au debut de ta jsp, genre <%=2+2%> et vérifie que ça affiche bien 4 :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-08-2005 à 13:03:25   

Reply

Marsh Posté le 18-08-2005 à 13:15:24    

Justement, si je ne me tiens qu'à la déclaration dans la jsp avec l'uri et bien j'obtiens la fameuse erreure citée plus haut :
org.apache.jasper.JasperException: L'uri absolue: http://java.sun.com/jsp/jstl/core ne peut être résolu dans le fichier web.xml ou dans les fichiers jar déployés avec cette application...
 
Sinon j'ai bien vérifié la petite addition et là ça m'affiche bien 4.

Reply

Marsh Posté le 18-08-2005 à 13:39:48    

ton web.xml est bien déclaré avec le schema de servlet-2.4 ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-08-2005 à 13:48:30    

Il est déclaré comme ceci (si j'ai bien comprit c'est pas bon puisque j'ai l'impréssion d'être en 2.3)...
 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
 
<web-app>
 
 <servlet>
  <display-name>PersonneServlet</display-name>
  <servlet-name>PersonneServlet</servlet-name>
  <servlet-class>com.exercices.Servlets.PersonneServlet</servlet-class>
 </servlet>
 
 <servlet-mapping>
  <servlet-name>PersonneServlet</servlet-name>
  <url-pattern>/ajout</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
  <servlet-name>PersonneServlet</servlet-name>
  <url-pattern>/listePersos</url-pattern>
 </servlet-mapping>
 
</web-app>

 
Faut que je change 2.3 en 2.4 ??

Reply

Marsh Posté le 18-08-2005 à 14:10:10    

Me suis renseigné mais même en rajoutant ceci au web.xml
 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/we [...] &#034;&gt;
 
bah ça marche toujours pas...

Reply

Marsh Posté le 18-08-2005 à 14:20:38    

ça devient louche, alors.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-08-2005 à 14:27:35    

Ca pourrait venir de Tomcat peut-être ??

Reply

Marsh Posté le 18-08-2005 à 16:41:11    

Essaye avec la version 5.0 pour voir. Il me semble que la version 5.5 est légèrement différente de la 5.0
 
Dans tous les cas, ca devrait marcher normalement, bizarre ton affaire...

Reply

Marsh Posté le 18-08-2005 à 16:58:23    

nookonee a écrit :

Il me semble que la version 5.5 est légèrement différente de la 5.0


 
encore heureux [:mlc]
 
j'utilise la 5.5 en production ici, pas de soucis.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-08-2005 à 17:03:18    

the real moins moins a écrit :

encore heureux [:mlc]
 
j'utilise la 5.5 en production ici, pas de soucis.


 
:o

Reply

Marsh Posté le 19-08-2005 à 09:19:56    

Bon finalement j'ai pu faire fonctionner cette s***** de jsp...
J'ai bien déclaré le schéma de servlet-2.4 dans le web.xml avec en plus la déclaration de la taglib. Puis j'ai ajouté la tld c.tld dans mon web-inf et là ça marche...
Bizarre en effet que je doive lui fournir la tld... Enfin...

Reply

Marsh Posté le 19-08-2005 à 13:56:29    

oui, parce qu'a ce que je sais, elle est là par defaut dans ton tomcat et tout moteur de jsp2...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-11-2005 à 08:52:12    

Salut,
essayer de mettre

standard.jar

dans les lib (common de tomcat ou dans la lib de l'appli) si pas déjà présent.
comme pour les exemples de Jsp2 qui sont fournis avec l'installation de tomcat...
heu, et c'est là qu'on trouve cette lib...
Antoine


Message édité par Antoine_h2 le 01-11-2005 à 08:56:11

---------------
jboss portal / portlet norme JSR-168 / Antoine, http://www.communication-langages- [...] .php?id=29
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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