IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Problème d'envoi d'un type hidden


Sujet :

Servlets/JSP Java

  1. #21
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    C'est sur la ligne rd.include que ça plante, mais c'est dans le traitement de la page JSP que ça coince.
    Comme te l'a dit Jidefix, il faut aller voir dans le répertoire work du serveur et descendre l'arborescence jusqu'au code de ta page...

    Tu utilises Eclipse pour exécuter le code ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #22
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Ouais j'utilise Eclipse et je sais pas où est ce dossier work.

    J'ai vérifié mes variables, i est donc bien égal a 1 donc ca doit etre bon et c bizarre pour mon vecteur v apparemment c'est un vecteur de 10 objets où y'en a 2 bien remplis avec les données qu'il faut. Mais apparemment c'est bien un vecteur donc ca devrait passé

    Je vais mettre a peu pres ce que j'ai pour mon vecteur :

    capacity increment : 0
    elementCount : 2
    elementData : Object[10]
    --->[0]
    ---> NomMembre : toto
    ---> PrenomMembre : toto
    --->[1]
    ---> NomMembre : tata
    ---> PrenomMembre : tata

  3. #23
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Eclipse a probablement crée le dossier work a la racine de ta web-application.
    La dernière solution est que ton Vector n'a pas d'élément 1.

    En fait le mieux serait que tu mettes un breakpoint dans le XXX_jsp.java au début et que tu suives en mode DEBUG.

    Si tu connais pas et que ça te gonfle je te propose aussi de rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("m: "+m);
    juste après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Membre m=(Membre)v.get(indice);
    dans ta jsp, comme ça on sera fixés

    edit: après quelques relectures un doute me vient à l'esprit: la variable "indice", tu la stockes dans request.setAttribute ou bien request.getSession().setAttribute()?

    Je demande parce qu'entre tes deux exemples de servlet tu as changé...
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  4. #24
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Je la stocke dans request.getSession().setAttribute("indice");

    Ca ne fera rien si je rajoute quelque chose dans ma JSP car il passe pas dedans de toute facon.

    J'ai trouvé mon dossier work et a la ligne 71 ca correspond a la récupération de mon indice, c'est cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i=(Integer)request.getSession().getAttribute("indice");

  5. #25
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Et pourtant dans le code que tu nous as posté tu as mis ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(request.getParameter("bouton").equalsIgnoreCase("Gestion des membres")){
                    i=1;
                    request.setAttribute("indice", i);
                    request.setAttribute("liste", v);            
                }
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  6. #26
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Oui mais j'ai changé et mis getSession() dans la servlet et dans la JSP, ca pose un soucis ?

    Sinon vous voyez un probleme au niveau de la recup de l'indice ?

  7. #27
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Sauf si tu as des raisons particulières de garder l'indice en mémoire, tu ferai mieux de le laisser dans les attributs de request et pas dans ceux de la session,
    sinon plus concrètement si tu avances en DEBUG, es tu sur que ça passe dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(request.getParameter("bouton").equalsIgnoreCase("Gestion des membres")){
    Parce que la maintenant dans ta jsp je ne vois plus aucun bouton ayant cette valeur...
    Ce serait pas mal que tu reposte les codes jsp et servlet avec toutes tes modifs...
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  8. #28
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Vincinho Voir le message
    Ouais j'utilise Eclipse et je sais pas où est ce dossier work.
    A partir de ton projet (dans le workspace)
    ...\workspace\NOM_PROJET\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost
    Ça devrait t'éviter de tourner en rond...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #29
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    C'est bon j'ai retiré les getSession() dans ma servlet et ma JSP et du coup j'ai l'affichage de mon premier élément donc merci a tous.

    Maintenant mon soucis c'est que ma navigation ne marche pas.

    j'ai ce code dans ma JSP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="bouton" value="suivant" />
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="indice"/>
    où l'indice est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int indice=(Integer)request.getAttribute("indice");
    et dans ma servlet j'ai ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else if(request.getParameter("bouton").equals("suivant")){
    				i=(Integer)request.getAttribute("indice");
    ca plante la avec un NullPointerException

    Je pense que c'est au niveau de l'envoi de mon indice de ma JSP vers ma servlet mais je sais pas trop comment on fais

  10. #30
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Normal puisque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="indice"/>
    ne contient pas de valeur

    A remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="indice" value="<%=indice%>"/>
    edit: juste pour info les nullPointerException sont dus à l'autoUnboxing de java qui transforme l'Integer indice en int.
    Si l'objet Integer est null, ça renvoie un nullPointerException, ça ne me regarde pas mais si tu veux que ton appli soit un peu plus robuste il faudrait gérer ce cas (soit en renvoyer un message spécifique soit en forçant une valeur par défaut comme 0)
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  11. #31
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    ATTENTION
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Ce que tu fais :
    
    i=(Integer)request.getAttribute("indice");
    
    
    Ce qu'il faudrait
    
    i=Integer.parseInt(request.getParameter("indice"));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #32
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    J'ai toujours la meme erreur en mettant une valeur dans l'input hidden. Apparemment la servlet ne recoit pas la valeur.

  13. #33
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Exact j'avais eu le meme probleme la derniere fois. Donc ca marche je recupere ma premiere valeur par contre ca marche toujours pas ma navigation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(request.getParameter("bouton").equalsIgnoreCase(suivant)){
    				i=Integer.parseInt(request.getParameter("indice"));
    				if(i<v.size()){
    					i++;
    					request.setAttribute("indice", i);
    				}
    			}
    J'ai encore une NullPointerException sur mon rd.include(...);

  14. #34
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu peux montrer le code actuel de la page JSP ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #35
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <form action="/basetest/listeMembres" method="get" target="gestion">
    <%@page import="singulier.*"%>
    <%@page import="pluriel.*"%>
    <%@page import="java.util.Vector" %>
    <%Vector v=(Vector)request.getAttribute("liste");
    int i=(Integer)request.getAttribute("indice");
    Membre m=(Membre)v.get(i);
    %>
     
    <h1>Gestion des membres</h1>
    <table border=1>
    <tr>
    	<th>Nom</th>
    <th>Prenom</th>
    </tr>
     
    <tr>
    	<td><% out.println(m.getNom()); %></td>
    <td><% out.println(m.getPrenom()); %></td>
    </tr>
     
    </table>
    </br>
    <input type="hidden" name="indice" value="<%=i%>" />
    <input type="submit" name="bouton" value="precedent" /><input type="submit" name="bouton" value="Nouveau" /><input type="submit" name="bouton" value="Modifier" /><input type="submit" name="bouton" value="Enregistrer" /><input type="submit" name="bouton" value="Supprimer" /><input type="submit" name="bouton" value="suivant" />
    </form>
    Voila le code de ma jsp

  16. #36
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Dejà tu peux remplacer les code suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% out.println(m.getNom()); %>
    par

    C'est 'achement plus lisible.

    Ensuite si tu as un nullPointerException comme d'hab on peut rien faire sans la ligne correspondante dans la jsp, et ke must resterai quand même de faire un DEBUG pour voir à partir de quand la variable en question aurait due etre dénullifiée et qu'elle ne l'a pas été
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  17. #37
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Quelle ligne de ma JSP tu veux au juste ?

    Et sinon j'ai fais un debug dans ma JSP mais a la fin de la page il continue pas sur la servlet. J'ai affiché ma variable i avant la fin de ma JSP et elle m'indique bien 0 qui est mon premier indice donc il n'est pas null.

  18. #38
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Citation Envoyé par Vincinho Voir le message
    Quelle ligne de ma JSP tu veux au juste ?
    Le probleme c'est que dans le principe tout ce qu'on sait c'est qu'il y a un nullPointerException quelque part dans ta JSP. La ligne qu'il nous manque est la ligne de ta jsp qui plante.
    Pour savoir laquelle regarde quelle est la ligne de ton ....._jsp.java sur laquelle survient le nullPointerException.
    Ensuite il faut regarder dans ce fichier (celui qui est dans work) pour savoir à quelle ligne ça correspond dans ta jsp.
    Ensuite tu regardes pourquoi la variable en question est nulle. en faisant du débug.

    Il n'y a pas que l'indice qui risque de faire des nullPointerExceptions. Tu n'as vérifié la nullité d'aucune de tes variables donc chacune est susceptible de planter.

    Par ailleurs, à la fin d'une JSP le programme (thread) est considéré comme terminé puisque la requete a été renvoyée au navigateur. Pour revenir à la servlet le navigateur va générer une AUTRE requete HTTP, qui s'ouvrira dans un autre thread. Ce nouvel échange sera impossible à suivre en DEBUG puisqu'il ne s'agira même pas d'une exécution de code java.
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  19. #39
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    En regardant ce que tu m'as dit ca serait cette ligne qui deconne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Membre m=(Membre)v.get(i);
    Je fais un membre m qui prend la valeur d'un membre qui est a l'indice i que je transtype en Membre. Vous voyez une erreur ?

  20. #40
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Il y a un nullPointerException sur cette ligne, ça ne veut dire qu'une seule chose: v est null.

    A toi de voir dans ta servlet à quel moment tu n'as pas attribué un objet à "liste"
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/07/2005, 17h08
  2. créer un type hidden dans une fonction javascript
    Par amelhog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2005, 12h17
  3. [input type hidden] devient nul
    Par Nadine dans le forum ASP
    Réponses: 17
    Dernier message: 25/04/2005, 20h26
  4. Problème avec les champs de type table
    Par devdev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/12/2004, 16h05
  5. [HTML] Problème d'envoi de formulaire
    Par autumn319 dans le forum ASP
    Réponses: 26
    Dernier message: 03/09/2003, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo