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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    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
    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.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    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, 14h49
  2. Réponses: 6
    Dernier message: 01/08/2011, 14h00
  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, 21h54
  4. Réponses: 4
    Dernier message: 18/07/2007, 18h17
  5. Réponses: 1
    Dernier message: 16/07/2007, 12h49

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