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 :

Passage paramètre JSP servlet


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Passage paramètre JSP servlet
    Bonjour, je suis confronté à un problème, j'ai un projet à faire en DUT et je bloque au niveau du passage de paramètres dans le formulaire, en effet j'affiche un tableau dans une boucle :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <%
        ArrayList<Descriptif> desc = new ArrayList<Descriptif>();
        desc = (ArrayList<Descriptif>)request.getAttribute("descriptif");
        
        out.println("<center><table bgcolor=\"#FFAAFF\" width=200>");
        out.println("<tr bgcolor=\"#dedede\"><th><a href=controleur?cmd=triDescMAJ&amp;tri=1>idtroup</a></th><th><a href=controleur? 
                              cmd=triDescMAJ&amp;tri=2>idesp</a></th><th><a href=controleur?cmd=triDescMAJ&amp;tri=3>sexe</a></th><th><a 
                              href=controleur?cmd=triDescMAJ&amp;tri=4>nombre</a></th></tr>");
        
        out.println("<form action=\"controleur\" method=\"get\">");
        out.println("<input type=\"hidden\" name=\"cmd\" value=\"traitementDesc\"/>");
        for (Descriptif d : desc) {
            out.println("<tr>");
            out.println("<td>"+d.getIdtroup()+"</td>");
            out.println("<input type=\"hidden\" name=\"idtroup\" value=\""+d.getIdtroup()+"\"/>");
            out.println("<td>"+d.getIdesp()+"</td>");
            out.println("<input type=\"hidden\" name=\"idesp\" value=\""+d.getIdesp()+"\"/>");
            out.println("<td>"+d.getSexe()+"</td>");
            out.println("<input type=\"hidden\" name=\"sexe\" value=\""+d.getSexe()+"\"/>");
            out.println("<td>"+d.getNombre()+"</td>");
            out.println("<td><button type=\"submit\" name=\"envoyer\" value=\"supp\">supprimer</button></td>");
            out.println("<td><button type=\"submit\" name=\"envoyer\" value=\"modif\">modifier</button></td>");
            out.println("</tr>");
        }
        out.println("<tr>");
        out.println("<td><input type=\"number\" name=\"idtroup\"/></td>");
        out.println("<td><input type=\"number\" name=\"idesp\"/></td>");
        out.println("<td><input type=\"text\" name=\"sexe\"/></td>");
        out.println("<td><input type=\"number\" name=\"nombre\"/></td>");        
        out.println("<td><button type=\"reset\" name=\"annuler\">annuler</button></td>");
        out.println("<td><button type=\"submit\" name=\"envoyer\" value=\"ajout\">ajouter</button></td>");
        out.println("</table></center>");
        out.println("</tr>");
        out.println("</form>");
    %>
    En cliquant sur "supprimer" dans le but de supprimer la ligne correspondante dans la base de données, je me retrouve avec une erreur car le formulaire envoie trop de paramètres, il envoi le idtroup, idesp et sexe de chaque ligne alors que je ne souhaite que celle courante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    http://localhost:8080/tpSynthese/controleur?cmd=traitementDesc&idtroup=1&idesp=5&sexe=femelle
              &idtroup=2&idesp=4&sexe=femelle&idtroup=2&idesp=1&sexe=male&idtroup=1&idesp=2&sexe=male
              &envoyer=supp&idtroupAjout=&idespAjout=&sexeAjout=&nombreAjout=
    Donc si quelqu'un aurait la solution à mon problème je le remercie d'avance.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu as plusieurs options:

    • créer un formulaire par ligne, au lieu d'un formulaire global, que tu emt dans la case où se trouve le bouton. + un formulaire en base pour le new
    • vu que tu travaille en get, ne pas utiliser un formulaire pour ton delete mais un lien avec les paramètres dans le lien (regarde du coté de c:url pour construire ce lien)
    • numeroter tes input, par exemple <input type="hidden" name="idtroup<%=numLigne%>" value="<%=d.getIdtroup()%>"/>


    Accessoirment, les JSP sont destinée à écrire du code HTML avec de temps en temps un bout de scriptlet ou un tag pour du rendu dynamique d'une partie. Là t'as tout mis dans un scriptlet avec des out.println, ça rend vraiment ton code dur à lire et en plus tu ne te rends pas compte que tu crée du html invalide (manque plein de guillemets sur tes tags, les fermetures de tag sont dans le désordre, d'autres tags sont dans des endroits invalides).


    Code xml : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <center>
    	<form action="controleur" method="get">
    		<input type="hidden" name="cmd" value="traitementDesc"/>
    		<table bgcolor="#FFAAFF" width="200">
    			<tr bgcolor="#dedede">
    				<th><a href="controleur?cmd=triDescMAJ&amp;tri=1">idtroup</a></th>
    				<th><a href="controleur?cmd=triDescMAJ&amp;tri=2">idesp</a></th>
    				<th><a href="controleur?cmd=triDescMAJ&amp;tri=3">sexe</a></th>
    				<th><a href="controleur?cmd=triDescMAJ&amp;tri=4">nombre</a></th>
    			</tr>
    			<c:forEach items="${descriptif}" var="d">
    				<tr>
    					<td>${d.idtroup}</td>
    					<td>${d.ddesp}</td>
    					<td>${d.sexe}</td>
    					<td>${d.sombre}</td>
    					<td>
    						<c:url value="controleur" var="supURL">
    							<c:param name="cmd" value="traitementDesc"/>
    							<c:param name="idtroup" value="${d.idtroup}"/>
    							<c:param name="idesp" value="${d.idesp}"/>
    							<c:param name="sexe" value="${d.sexe}"/>
    							<c:param name="envoyer" value="supp"/>
    						</c:url>
    						<a href="${supURL}">supprimer</a>
    					</td>
    					<td>
    						<c:url value="controleur" var="modURL">
    							<c:param name="cmd" value="traitementDesc"/>
    							<c:param name="idtroup" value="${d.idtroup}"/>
    							<c:param name="idesp" value="${d.idesp}"/>
    							<c:param name="sexe" value="${d.sexe}"/>
    							<c:param name="envoyer" value="modif"/>
    						</c:url>
    						<a href="${modURL}">modifier</a>
    					</td>
    				</tr>
    			</c:forEach>
    			<tr>
    				<td><input type="number" name="idtroup"/></td>
    				<td><input type="number" name="idesp"/></td>
    				<td><input type="text" name="sexe"/></td>
    				<td><input type="number" name="nombre"/></td>
    				<td><button type="reset" name="annuler">annuler</button></td>
    				<td><button type="submit" name="envoyer" value="ajout">ajouter</button></td>
    			</tr>
    			</table>
    	</form>
    </center>

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    merci, je vais tester ce que tu m'as dis et je reviens après

Discussions similaires

  1. passage paramètre JSP
    Par kenitra-boulla dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/04/2011, 09h48
  2. pb étonnant passage paramètres jsp action
    Par Melaba dans le forum Struts 1
    Réponses: 1
    Dernier message: 06/08/2008, 11h13
  3. [JSP-Servlet] Passage de paramètre d'un servlet à lui même
    Par Invité dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 02/05/2007, 10h12
  4. [JSP] Problème passage paramètre
    Par besco dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/09/2004, 10h15
  5. [jsp][servlet]passage de paramètre entre deux frames
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2004, 11h14

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