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 :

[Jsp] récup et utilisation de données de formulaire


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Par défaut [Jsp] récup et utilisation de données de formulaire
    Bonjour,

    Le sujet paraît être très demandé mais je ne trouve pas de post concernant mon pb.
    En fait j'ai une première page jsp contenant un formulaire avec comme méthode POST, l'action renvoie à une seconde page et une zone de texte.

    je voudrais récupérer la valeur de la zone de texte et la comparer avec le résultat d'une requête SQL. J'ai donc coder ceci :

    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
    <%@page language="java" %>
    <%@page import="java.io.*, java.util.*, java.sql.*" %>
     
    <sql:query var="util" maxRows="1" dataSource="jdbc/aid">
        SELECT * FROM ident WHERE id=1
    </sql:query>
     
    <c:set var="id_ident" scope="request" value="${util.rows[0]}"/>
     
    <%
            String ident = request.getParameter("ident");
                   
    %>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>ok</title>
     
        </head>
        <body>
            <h1> test </h1>
        </body>
    </html>
    Je voudrais comparer un champ du resulset obtenu avec ma varialble ident et dans le cas ou les deux valeurs sont égales afficher la page html correspondant au code du dessous et sinon afficher une autre page.
    Mon pb est que je débute en application web et je ne sais pas comment faire.
    Utilisant netbeans j'ai suivi les tutos du site netbeans mais pour cela je ne sais pas comment faire.

    Quelqu'un pourrait-il m'aguiller SVP

    Merci

  2. #2
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut [Jsp]récup et utilisation de données de formulaire
    Bonjour,
    Utilises Forward comme suit :

    If( VarIdent=varResult)
    {
    <jsp:forward page="error.jsp"/>
    }
    Else
    {
    <jsp:forward page="error.jsp"/>
    }
    Merci

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 208
    Par défaut
    La solution donnée me parait correct... mais cher ami je t'invite à mieux structurer ton code dès à présent ou dès que possible en utilisant le framework Struts. Une belle JSP c'est 100% tags (oui cest une servlet mais c'est une vue du point de vue MVC...). Le reste doit figurer ailleurs si possible (et surtout si le temps le permet... suivant impératifs de mission), et ce ne sont pas les solutions propres qui manquent : plugin validator, FormBean.validate(), Action.execute(...)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Par défaut
    Merci pour vos réponse !
    Par contre, à quel endroit du code je dois mettre le test if ?

  5. #5
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut [Jsp]récup et utilisation de données de formulaire
    Bonjour,
    Il y a encore une solution plus adéquate à ton sujet. Il suffit de faire un autre effort. C'est d'utiliser une Servlet qui reçoit les données du formulaire et puis les orienter pour les traiter ailleurs. Il faut utiliser le modèle MVC. Même si tu n'arrives pas à 100% mais ça sera uen bonne occasion pédagogique pour mieux saisir le sens.
    Tu crées un Servlet avec bien sur les méthode doGet, doPost - Tu peux faire ça avec Eclipse ou autres - puis tes envoies avec l'action POST tu le recupére dans la méthode Post de la Servlet, puis orienter le résultat vers une vue (Jsp ou HTML pour afficher le résultat).
    Il y a beaucoup de tutos sur ce site qui explique ça en détails. Ex : ce lien

    Merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Par défaut
    ok merci beaucoup!
    Je devrais m'en sortir avec cela.
    En fait en suivant lee tutos netbeans, il ne parlent pas des servlets. Du coup, j'avais complètement écarté cette solution alors que c'est l'idéal (tout au moins pour moi).

    Encore merci et
    A bientôt

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2006
    Messages : 453
    Par défaut
    Citation Envoyé par kmdkaci Voir le message
    Tu crées un Servlet avec bien sur les méthode doGet, doPost - Tu peux faire ça avec Eclipse ou autres - puis tes envoies avec l'action POST tu le recupére dans la méthode Post de la Servlet, puis orienter le résultat vers une vue (Jsp ou HTML pour afficher le résultat).
    Bonjour, Mais comment on peut orienter le résultat justement, est ce qu'on doit préparer les pages ?
    Merci

  8. #8
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut [Jsp] récup et utilisation de données de formulaire
    Bonjour,
    La servlet qui oriente les résultats doit contacter les classes métier et celle de la couche donnée (éventuellement) pour récupérer ces résultats. Je schématise ça par un exemple simple, pas complet bien sur.
    Dans ma page vue (Une JSP au départ), j'ai un formulaire qui me permet de saisir un nom d'un acteur afin de récupérer tous les films auxquels a participé. Je lance avec mon bouton Submit, la Servlet Contrôleur reçoit le formulaire dans sa méthode Post, récupère les paramètres du formulaire, notamment le nom de l'acteur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ChaineRech = req.getParameter("nomActeur");
    Puis fait appel à la couche Données, avec une méthode quelconque pour chercher dans la base tous les films de l'acteur et met ça dans un ArrayList par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<String> lister = TraiterDonne.Chercheracteur("ChaineRech ");
    Puis la servlet contrôleur renvoie ça à une autre page JSP (ListerRes.jsp) résultat pour afficher le contenu ArrayList.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RequestDispatcher dispat = req.getRequestDispatcher("ListerRes.jsp");
    dispat.forward(req,resp);
    Il ne reste plus qu'afficher le ArrayList dans la page JSP.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2006
    Messages : 453
    Par défaut
    [QUOTE=kmdkaci;3855837]
    La servlet qui oriente les résultats doit contacter les classes métier et celle de la couche donnée (éventuellement) pour récupérer ces résultats. Je schématise ça par un exemple simple, pas complet bien sur.
    Dans ma page vue (Une JSP au départ), j'ai un formulaire qui me permet de saisir un nom d'un acteur afin de récupérer tous les films auxquels a participé. Je lance avec mon bouton Submit, la Servlet Contrôleur reçoit le formulaire dans sa méthode Post, récupère les paramètres du formulaire, notamment le nom de l'acteur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ChaineRech = req.getParameter("nomActeur");
    Puis fait appel à la couche Données, avec une méthode quelconque pour chercher dans la base tous les films de l'acteur et met ça dans un ArrayList par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<String> lister = TraiterDonne.Chercheracteur("ChaineRech ");
    Puis la servlet contrôleur renvoie ça à une autre page JSP (ListerRes.jsp) résultat pour afficher le contenu ArrayList.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RequestDispatcher dispat = req.getRequestDispatcher("ListerRes.jsp");
    dispat.forward(req,resp);
    Salut, merci pour l'exemple, mais je voudrai savoir comment obtenir une page (deuxième jsp par exemple) sans utiliser une base de données, c'est à dire, valider une valeur dans le premier formulaire puis obtenir la deuxième page en fonction de cette valeur (si je mets la valeur 4 par exemple dans la première page, je dois obtenir 4 champs de saisie dans la deuxième page).
    Merci.

  10. #10
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 48
    Par défaut
    Bonjour à tous,

    kmdkaci j'ai une question par rapport à ta réponse.

    J'aurai aimé savoir dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RequestDispatcher dispat = req.getRequestDispatcher("ListerRes.jsp");
    dispat.forward(req,resp);
    Je ne comprends pas où tu te sers de l'ArrayList que tu as créé plus haut.

    J'ai moi aussi le problème pour renvoyer une ArrayList de mon contrôleur à la Vue qui affichera l'ArrayList.

    Pourrais tu expliquer plus en détail cette partie?

    Merci

  11. #11
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Il suffit de mettre la liste dans le scope request via un request.setAttribute.

  12. #12
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut [Jsp] récup et utilisation de données de formulaire
    Bonjour,
    yasinfo a dit :
    Je ne comprends pas où tu te sers de l'ArrayList que tu as créé plus haut.
    Évidement après récupération de ArryaList et avant de faire appel à ListerRes.jsp il faut sauvegarder ce ArrayList dans une session.

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 48
    Par défaut
    Merci à vous deux pour ces réponses !

    Par contre l'un me dit de le faire passer en session et l'autre en request,
    est-ce qu'il y a une différence autre que la durée de conservation des donnée?

    Je dis peut-être une énorme bêtise (débutant en jsp ^^" ), mais la session reste jusqu'à ce que je la détruise et le request ne reste qu'une fois, non?

  14. #14
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut [Jsp] récup et utilisation de données de formulaire
    Bonjour,
    C'est peut-être un abus de langage. En tout cas techniquement c'est comme l'a écrit c_nvy :

  15. #15
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Si tu as besoin de la liste seulement pour affichage dans une page, le scope request suffit.
    Si par contre, tu as besoin de la liste sur plusieurs pages, il faut la mettre dans le scope session via un request.getSession().setAttribute.

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

Discussions similaires

  1. Récupération des données de formulaire dans une page JSP
    Par fauthie dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/09/2009, 14h02
  2. Réponses: 0
    Dernier message: 02/07/2009, 12h20
  3. Réponses: 3
    Dernier message: 22/10/2008, 22h50
  4. Réponses: 6
    Dernier message: 14/12/2006, 20h04
  5. Réponses: 6
    Dernier message: 06/01/2006, 10h17

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