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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut Problème d'envoi d'un type hidden
    Bonjour tout le monde,

    je fais actuellement un site web où j'ai mis des frames avec le menu a gauche. Dans ce menu il y a des liens qui modifient le contenu de ma frame principale.

    Un lien notamment me dirige vers une servlet pour récupéré des données dans une base de données qui se dirige ensuite vers une JSP. J'ai des boutons dans ma JSP pour naviguer entre les données, ce bouton se nomme "bouton" avec une value "suivant" ou "précédent".

    Cependant j'ai une exception NullPointerException sur la ligne :
    if (request.getParameter("bouton").equalsIgnoreCase("premier")){
    où "premier" est une value d'un type hidden que j'envois depuis le menu apres le lien vers la servlet. Je voulais envoyer ce paramètre pour indiquer qu'il fallait afficher la premiere donnée mais ca marche pas.

    Quelqu'un voit d'où ca peut venir ?

    Je peux essayé de décrire plus clairement mais ca prendra de la place

  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    essait de détailler un peu plus ton problème

    chose importante de manière général même si tu t'attend à ce que ton paramètre soit différent de null il est toujours bien de faire le test et ainsi traité le problème, exemple ici on ne sais pas ou on en est alors on réaffihcer les premiers éléments.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String monElement="";
     
    if((null==request.getParameter("bouton"))||("".equals(request.getParameter("bouton")))
    {
       monElement ="premierePage";
    }
    else monElement = request.getParameter("bouton");

    peux tu être plus clair sur l'endoit ou se situe ton champ cache button
    ou est ce que ce formulaire va être valider et ou veux tu traiter ton request.getParam

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut
    Voila le code html de mon menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form action="/basetest/listeMembre" method="get">
     
    <input type="hidden" name="bouton" value="premier" />
    <a href=/basetest/listeMembre target="gestion">Liste des membres</a></br>
     
    </form>
    Voila le code de ma servlet :

    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
    Vector v;
    Membres c;
    int i;
    c=new Membre();
    try {
    	v=Membre.listeMembre();
    	RequestDispatcher rd;
    	rd=getServletContext().getRequestDispatcher("/listeMembres.jsp");
    	if (request.getParameter("bouton").equalsIgnoreCase("premier")){
    	i=0;
    	request.getSession().setAttribute("indice", i);
    	request.getSession().setAttribute("liste", v);
    	}
    	if(request.getParameter("bouton").equalsIgnoreCase(" > ")){
    		i=(Integer)request.getSession().getAttribute("indice");
    		if(i<v.size()){
    		i++;
    		}
    		request.getSession().setAttribute("indice", i);
    Voila en gros je veux envoyé un parametre avec mon lien dans mon menu ce parametre permettrait de dire que c'est le premier affichage. Ensuite la servlet enverrait le parametre v qui contient les données. La JSP recoit le vecteur (=parametre v) et un indice et affiche donc la donnée suivant l'indice. Ensuite quand on clique sur précédent il renvoie le parametre indice et rajoute 1 quand c suivant et -1 quand c precedent et renvoie l'indice a la JSP qui du coup renvoie la donnée correspondant a ce nouvel indice

    Est ce clair ?

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,
    Si je comprends bien tu contactes ta servlet en cliquant sur "Liste des membres".

    Or il s'avère que ce lien n'est qu'un lien hypertexte qui est indépendant des autres champs de ton formulaire.
    Il faut le remplacer par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=submit value="Liste des membres">
    et rajouter le "target" dans le <form>

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut
    Je ne pense pas que ca changera grand chose. Je m'organise comme ca.

    Ma page web m'envois vers ma servlet via un lien hypertext, ma servlet ensuite envoie un vecteur et un indice a ma JSP qui les recoit et affiche l'indice du vecteur recu. Ensuite lorsque je clique sur précédent ou suivant, il renvoit l'indice recu grace a un parametre a ma servlet qui selon le parametre ajoute 1 ou retire 1 a l'indice recu de la JSP et réexpédie ce nouvel indice a la JSP qui l'affiche.

    Voila textuellement ce que je veux faire cependant dans ma servlet j'ai ca :

    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
    Vector v;
    Membres c;
    int i;
    c=new Membre();
    try {
    v=Membre.listeMembre();
    RequestDispatcher rd;
    rd=getServletContext().getRequestDispatcher("/listeMembres.jsp");
    i=0;
    request.getSession().setAttribute("indice", i);
    request.getSession().setAttribute("liste", v);
    if(request.getParameter("bouton").equalsIgnoreCase("suivant")){
    i=(Integer)request.getSession().getAttribute("indice");
    if(i<v.size()){
    i++;
    }
    et du coup il me met une erreur NullPointerException sure la ligne :
    if(request.getParameter("bouton").equalsIgnoreCase("suivant")){
    car, je pense, qu'il n'a recu aucun parametre. Est cela ou autre chose ?

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut
    J'ai pensé a une autre solution mais je sais pas si c'est possible. Je pourrais peut etre faire l'affichage du premier passage grace a la methode doGet et faire ensuite passer les parametres par la methode doPost de cette meme servlet ?

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Vincinho Voir le message
    Je ne pense pas que ca changera grand chose.
    Si, car uin lien html ne poste rien du tout.

    Citation Envoyé par Vincinho Voir le message
    lorsque je clique sur précédent ou suivant, il renvoit l'indice recu grace a un parametre a ma servlet qui selon le parametre ajoute 1 ou retire 1 a l'indice recu de la JSP
    Je ne vois nulle part dans ce formulaire la trace de tes boutons précédent et suivant! Ton forumlaire est vide de tout composant actif, il ne peux donc jamais être envoyé.

    PS: essaie de penser aux balise code (bouton #) quand tu poste du code!!

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