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

Struts 1 Java Discussion :

Cmt passer la valeur saisie dans un formulaire à une requete ?


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Points : 41
    Points
    41
    Par défaut Cmt passer la valeur saisie dans un formulaire à une requete ?
    Bonjour,

    J'ai créé deux page jsp un actionForm et un action, dans la deuxième page jsp j'affiche le résultat d'une requete(liste de voitures) dans la première j'ai un formulaire avec un champ de saisi(marque voiture), je veux passer la valeur saisie à la requete de façon à ce que je n'affiche que la liste des voitures de la marque saisie. Comment dois-je procéder ?

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Admettons que tu aies un formulaire comme ceci dans ta première jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html:form action="pathDeTonAction">
       <html:text property="marque"/>
       <html:submit value="valider"/>
    </html:form>
    Ceci mettra à jour la propriété que j'ai appelé marque de ton form-bean.
    Donc, dans l'Action qui s'exécute au submit du formulaire, tu peux récupérer la valeur de marque en codant ceci dans la méthode execute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm=(TonActionForm) form;
    String marque = tonActionForm.getMarque() ;
    et ensuite constituer la liste des voitures de la marque saisie.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Points : 41
    Points
    41
    Par défaut
    Merci,
    j'avais la requete : String sqlQuery = "SELECT * FROM VEHICULE";
    elle me retourne toute la liste.
    J'ai ajouté ce que tu m'as dit et j'ai modifier la requete :
    "SELECT * FROM VEHICULE WHERE Marque = '"+ marque +"'";
    mais elle m'envoie à <logic:notPresent.. source non accessible !
    j'ai essayé une requete :
    "SELECT * FROM VEHICULE WHERE Marque = 'Simca'"; (Simca existe dans la bd !), et la aussi, source non accessible !

    C'est pas du sql ce que j'écris !?

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Sur quel propriété fais-tu un logic:notPresent ?
    Avec un peu plus de code, on pourra plus facilement t'aider.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Points : 41
    Points
    41
    Par défaut
    Bien-sûr, voici le code de la page resultat.jsp :

    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
    36
    <logic:notPresent name = "allMyCars">
                            <h2>Source non accessible !</h2>
                        </logic:notPresent>
     
                        <logic:present name = "allMyCars">
                            <logic:empty name = "allMyCars">
                                <h2>Source accessible, mais aucun résultat !</h2>
                            </logic:empty>
                        </logic:present>
     
                        <logic:present name = "allMyCars">
                            <p>Liste des voitures :</p>
                            <table  style="border: 1px solid green; margin:1px" cellpadding="3">
                                <thead>
                                    <tr>
                                        <th></th>
                                        <th><u>Marque</u></th>
                                        <th><u>Modele</u></th>
                                        <th><u>Prix</u></th>
                                        <th><u>Couleur</u></th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <logic:iterate id="car" name="allMyCars">
     
                                        <tr>
                                            <td><html:checkbox  name="car" property="id" value="true" /></td>
                                            <td><bean:write     name="car" property="marque" /></td>
                                            <td><bean:write     name="car" property="modele" /></td>
                                            <td><bean:write     name="car" property="prix"  /></td>
                                            <td><bean:write     name="car" property="couleur" /></td>
                                        </tr>
                                    </logic:iterate>
                                </tbody>
                            </table>
                        </logic:present>

  6. #6
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Et comment mets-tu la liste allMyCars dans le scope ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Points : 41
    Points
    41
    Par défaut
    Le voici, j'ajoute qu'avec une requete simple [SELECT * FROM VEHICULE], c'est au moment où j'ajoute la condition where que ça plante !

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    public class RechercheVehiculeParMarqueAction extends Action 
    {
        
        private DataSource dataSource;
        public ArrayList vehiculeList = new ArrayList();
        private final static String SUCCESS = "success";
        
        private String marque; /*pour la recherche*/
        
        public ActionForward execute(ActionMapping mapping, ActionForm  form, HttpServletRequest request, HttpServletResponse response)
        throws Exception 
        {
            /* Pour la recherche */
            RechercheVehiculeParMarque monActionForm=(RechercheVehiculeParMarque) form;
            marque = monActionForm.getSaisie() ;
            
            
            HttpSession session = request.getSession();
            /** Here the method that connects to the datasource is called: */
            vehiculeList = getVehicules() ;
            /** Here we put the vehiculeList in scope, so that we can use it in the JSP page: */
            if(vehiculeList  != null) 
            {
                session.setAttribute("allMyCars", vehiculeList);
            }
            return (mapping.findForward(SUCCESS));
        }
        
        private ArrayList getVehicules() 
        {
            Connection conn = null;
            Statement  stmt = null;
            PreparedStatement prpStmt = null;
            ResultSet rs = null;
            StringBuffer  resultString ;
            
            try 
            {
                /** Here 'TabVehicule' maps to the datasource key defined in struts-config.xml: */
                dataSource = (DataSource)servlet.getServletContext().getAttribute("TabVehicule");
                
                conn = dataSource.getConnection();
                String sqlQuery = "SELECT * FROM VEHICULE";
                prpStmt = conn.prepareStatement(sqlQuery);
                rs = prpStmt.executeQuery();
                
                /** Here we put field 2 (the name) and field 3 (the city) in the vehiculeList: */
                while (rs.next()) 
                {
                    vehiculeList.add(new row(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5)));
                }
                rs.close();
                
            } 
            catch ( SQLException e ) 
            {
                System.err.println("SQL Exception occured while accessing the table" );
                e.printStackTrace();
                return null;
                
            } 
            catch ( Exception e ) 
            {
                e.printStackTrace();
                System.out.println("Exception="+e.getMessage()) ;
                System.out.println(e.getMessage()) ;
                return null;
            }
            
            return vehiculeList;
        }
    }

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    C'est bon, j'ai pu résoudre mon problème tout seul

    en fait fallait pas toucher à la requete, je suis aller dans la boucle ou on parcourt le resultSet et j'ai ajouté un test :if(..), je l'ai mis en rouge gras dans le code,

    merci pour votre aide !

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    public ActionForward execute(ActionMapping mapping, ActionForm  form, HttpServletRequest request, HttpServletResponse response)
        throws Exception 
        {
            /* on récupère du bean de la marque saisie dans le formulaire, pour ensuite la passer à la requête */
            RechercheVehiculeParMarque monActionForm=(RechercheVehiculeParMarque) form;
            marque = monActionForm.getSaisie() ;
            
            
            HttpSession session = request.getSession();
            /** Here the method that connects to the datasource is called: */
            vehiculeList = getVehicules() ;
            /** Here we put the vehiculeList in scope, so that we can use it in the JSP page: */
            if(vehiculeList  != null) 
            {
                session.setAttribute("allMyCars", vehiculeList);
            }
            return (mapping.findForward(SUCCESS));
        }
        
        private ArrayList getVehicules() 
        {
            Connection cox = null;
            Statement  stmt = null;
            PreparedStatement prpStmt = null;
            ResultSet rs = null;
            StringBuffer  resultString ;
            
            try 
            {
                /** Here 'TabVehicule' maps to the datasource key defined in struts-config.xml: */
                dataSource = (DataSource)servlet.getServletContext().getAttribute("TabVehicule");
                
                cox = dataSource.getConnection();
                String sqlQuery = "SELECT * FROM VEHICULE";
                prpStmt = cox.prepareStatement(sqlQuery);
                rs = prpStmt.executeQuery();
                
                /** Here we put .. field 2 (the name), field 3 (the city), .. in the vehiculeList: */
                while (rs.next()) 
                {
                    if(rs.getString(2).equals(marque) )
                        vehiculeList.add(new row(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5)));
                }
                rs.close();
                
            } 
            catch ( SQLException e ) 
            {

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/09/2014, 19h29
  2. Réponses: 2
    Dernier message: 08/01/2007, 09h01
  3. Perte de valeurs saisies dans un formulaire
    Par mitje dans le forum Struts 1
    Réponses: 3
    Dernier message: 26/12/2006, 14h35
  4. Valeurs saisies dans un formulaire
    Par vautour29 dans le forum Access
    Réponses: 7
    Dernier message: 11/07/2006, 14h39
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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