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 :

Servlet, JSP et biblio JSTL Core. Comment renvoyer id Article et quantité à la servlet?


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Servlet, JSP et biblio JSTL Core. Comment renvoyer id Article et quantité à la servlet?
    Bonjour à tous,

    Je suis en train de réaliser un travail pour l'école. Il s'agit d'un site web de vente en ligne. Je travaille à l'ajout d'articles au panier. J'utilise des Servlet et la biblitothèque JSTL Core (fichiers JSP).

    Sur mon site, une page web liste les articles en vente. Pour chacun d'eux, à côté de leur nom, il y a un "textbox" pour encoder la quantité souhaitée et une image "Ajouter au panier" qui ajouter l'article au panier quand on clique dessus.

    Comment obtenir dans ma servlet "AjouterPanier" ces deux paramètres: la valeur présente dans le textbox associé à l'id de l'article? Si j'utilise <form Action=post>, je parviens bien à récupérer ce qu'il y a dans mon textbox, mais impossible de déterminer quelle image (et donc quel Id D'article) a été cliquée (à moins que vous ayez une idée).

    Si j'utilise un lien associé à l'image, je peux alors y ajouter comme paramètre l'identifiant de l'id d'Article, mais je ne parviens pas à y associer ce qu'il y a dans le textbox.

    J'ai retourné la situation dans tous les sens mais je ne parviens à rien (j'ai aussi tenté du javascript mais je tourne toujours en rond).

    Quelle serait, selon vous, la solution à mon problème?

    Bonne journée,
    --
    Jean-François

    Voici le code de la page JSP:

    Code jsp : 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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <%@ page pageEncoding="UTF-8" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Sélection de nos processeurs</title>
            <link type="text/css" rel="stylesheet" href="<c:url value="style.css"/>" />
            <script type="text/javascript" src="jquery-1.9.1.js"></script>
            <script type="text/javascript" src="webApplication.js"></script>
        </head>
        <body>
            <div id="corps">
            <c:choose>
                <%-- Si aucun client n'existe en session, affichage d'un message par défaut. --%>
                <c:when test="${ empty sessionScope.processeurs }">
                    <p class="erreur">Aucun processeur.</p>
                </c:when>
                <%-- Sinon, affichage du tableau. --%>
                <c:otherwise>
                <table>
                    <tr>
                        <th>Constructeur</th>
                        <th>Nom</th>
                        <th>Fréquence</th>
                        <th>Nombre de coeurs</th>
                        <th>Prix</th>
                        <th>Prix promo</th>
                        <th class="action">Action</th>                    
                    </tr>
                    <%-- Parcours de la Map des clients en session, et utilisation de l'objet varStatus. --%>
                    <c:forEach items="${ sessionScope.processeurs }" var="mapProcesseurs" varStatus="boucle">
                    <%-- Simple test de parité sur l'index de parcours, pour alterner la couleur de fond de chaque ligne du tableau. --%>
                    <tr class="${boucle.index % 2 == 0 ? 'pair' : 'impair'}">
                        <%-- Affichage des propriétés du bean Client, qui est stocké en tant que valeur de l'entrée courante de la map --%>
                        <td><c:out value="${ mapProcesseurs.value.getConstructeur() }"/></td>
                        <td><c:out value="${ mapProcesseurs.value.getNom() }"/></td>
                        <td><c:out value="${ mapProcesseurs.value.getFréquence() }"/></td>
                        <td><c:out value="${ mapProcesseurs.value.getNombreCoeurs() }"/></td>
                        <td><c:out value="${ mapProcesseurs.value.getPrix() }"/></td>
                        <td><c:out value="${ mapProcesseurs.value.getPromo() }"/></td>
                        <td>
                        <input type="text" id="<c:out value="textBoxQuantité"/>" name="<c:out value="textBoxQuantité"/>">
                        </td>
                        <%-- Lien vers la servlet d'ajout au panier, avec passage de l'id de l'article choisi- c'est-à-dire la clé de la Map - en paramètre grâce à la balise <c:param/>. --%>
                        <td class="action">
                            <a href="<c:url value="/AjouterPanier"><c:param name="nomClient" value="${ mapProcesseurs.key }" /></c:url>">
                                <img src="<c:url value="/inc/ajouterPanier.png"/>" alt="Ajouter au panier" />
                            </a>
                        </td>
                    </tr>
                    </c:forEach>
                </table>
                </c:otherwise>
            </c:choose>
            </div>
        </body>
    </html>

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. Par form/submit, tu peux utiliser le type hidden pour associer aux "input" toutes les valeurs que tu veux, sans qu'elles soient visibles.
    2. Par lien (<a href>, tu peux ajouter dans l'url tous les paramètres de la ligne courante que tu veux (page.jsp?param1=val1&param2=val2&param3=val3...)
    3. Comme tu utilises JQuery, tu pourrais utiliser une fonction qui fait un appel ajax en passant les paramètres que tu veux à cette fonction (appelée par exemple par clic sur le lien), un objet json par exemple. Une technique par exemple : stocker en data le json.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Ok, ça fonctionne avec Form action. En fait, je n'avais pas compris que c'était name= qui permettait de retrouver le paramètre dans la servlet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form name="input" action="http://localhost:8080/WebApplication2/AjouterPanier" method="post">
           Quantité: <input type="text" name="user<c:out value="${ mapProcesseurs.key }"/>">
           <input  type="submit" value="Ajouter au panier" name="button<c:out value="${ mapProcesseurs.key }"/>">
    </form>
    Je reviendrai si je rencontre d'autres problèmes.

    Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/12/2017, 15h49
  2. Réponses: 6
    Dernier message: 01/08/2011, 15h00
  3. renvoyer un objet cree dans une servlet vers une page jsp
    Par kore62 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/08/2007, 22h54
  4. Réponses: 4
    Dernier message: 18/07/2007, 19h17
  5. Réponses: 1
    Dernier message: 16/07/2007, 13h49

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