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 :

Conserver les choix effectuées dans un groupe de Checkbox


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut Conserver les choix effectuées dans un groupe de Checkbox
    Bonjour,

    Description de Situation :
    Si l'utilisateur fait un choix ou + dans les checkbox et il n'a pas saisi le nom, puis il a clické sur envoyer, alors on doit le diriger vers le même formulaire en conservant les choix qu'il les a déjà fait, mon problème est de conserver ses choix en cas de la non validation de nom, je ne sais pas comment faire, j'ai essayé de le réussir mais je n'arrive pas à réussir.

    index.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
    37
    38
    39
    40
    41
    42
    43
     
    <%
     String Loisir[][] = {{"id_fct1","fct1"},{"id_fct2","fct2"},{"id_fct3","fct3"}}
    %>
    <HTML>
    	<HEAD> <title> formulaires et servlets </title>
    	</HEAD>
    	<BODY>
            <%
                String[] loisir_jsp = null;
    if(request.getAttribute("nom_servlet") != null)
                {
                    loisir_jsp = (String[]) request.getAttribute("loisir_servlet");
                    nom_jsp = (String) request.getAttribute("nom_servlet");
    }
     
    %>
    		<FORM method="POST" action="MyServlet">
    				Enregistrement d un utilisateur
    				<TABLE border=0>
    					<TR>
    						<TD>Nom :</TD> <TD><INPUT type=text name="nom"></TD>
                            <td> <% if(request.getAttribute("nom_servlet") != null && nom_jsp == "") out.print("Remplire ce Champs");%> </td>
    					</TR>
     
    <TR>
    						<TD>loisirs :</TD>
    						<TD>
                                <%
                                    for(i=0; i < Loisir.length; i++)
                                    {
                                %>
                                <INPUT type=checkbox name = "loisirs" value="<%Loisir[i][0]%>" <% if(loisir_jsp.length != 0){for(int k=0; k < loisir_jsp.length ; k++){ if(Loisir[i][0].equals(loisir_jsp[k])) out.print(" checked");}}%> > <%= Loisir[i][1]%>
      <%
                                    }
                                %>
    <TR>
    						<TD COLSPAN=2><INPUT type="submit" value="Envoyer"></TD>
    					</TR>
    				</TABLE>
    		</FORM>
    	</BODY>
    </HTML>
    MyServlet.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     public void doPost(HttpServletRequest request,
    					HttpServletResponse response)
    	  throws ServletException, IOException {
    String[] trait_loisir_jsp = request.getParameterValues("loisir");
    String trait_nom_jsp = request.getParameter("nom");
     
    request.setAttribute("nom_servlet",trait_nom_jsp);
     request.setAttribute("loisir_servlet",trait_loisir_jsp);
    String nextJSP = "/index.jsp";
                RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
                dispatcher.forward(request,response);
    Si quelqu'un peux me modifier mon code dans Jsp / servlet de telle façon à satisfaire mon besoin.


    Je vous remercie beaucoup.

  2. #2
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut
    J'ai modifié mon code , mais le problème c'est qu'il me conserve pas les choix effectués sachant que j'ai mis un forward avec request et response dans la servlet (MyServlet) vers mon formulaire ( index.jsp ).

    index.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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
       <% String Type_Contrat[][] = {{"id_cdi","CDI"},{"id_cdd","CDD"},{"id_miTemps","Mi-Temps"},{"id_freelance","FreeLance"},{"id_stage","Stage"}};
       int i = 0;
       %>
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <%
                String[][] type = new String[Type_Contrat.length][2];
                request.setAttribute("tailleTab", Type_Contrat.length + "");
                String nom_jsp = "";
                if(request.getAttribute("nom_servlet") != null){
                    nom_jsp = (String) request.getAttribute("nom_servlet");
                    type = (String[][]) request.getAttribute("type_servlet");
                    }
            %>
            <h1>Hello World!</h1>
            <TR>
    						<TD>Nom :</TD> <TD><INPUT type=text name="nom_jsp"></TD>
                            <TD><% if(request.getAttribute("nom_servlet") != null && nom_jsp == "") out.print("(*)");%></TD>
     
    					</TR>
            <form action ="MyServlet" method ="post">
            <table id = "label" cellspacing = "0" cellpadding = "0" width = "640px">
                <tr>
                    <%
                        for(i=0; i < Type_Contrat.length; i++)
                        {
                            if(i == 4)
                            {
                    %>
                                </tr>
                                <tr>
                          <%
                             }
                          %>
                    <td>
                        <input type="CheckBox" name = "<%= Type_Contrat[i][0]%>" <% if(type[i][1]!=null && type[i][1].equals("checked")) out.print("checked");%>> <%= Type_Contrat[i][1]%>
                    </td>
                    <%
                        }
                    %>
                </tr>
        </table>
            <input name ="t" type ="submit" value =" jj">
        </form>
        </body>
    </html>
    MyServlet.java
    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
     
    public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException
        {
    		String Type_Contrat[][] = {{"id_cdi","CDI"},{"id_cdd","CDD"},{"id_miTemps","Mi-Temps"},{"id_freelance","FreeLance"},{"id_stage","Stage"}};
            if(request.getParameter("nom_jsp") != null)
            {
                         // *********** Salvage Date Of society ************
     
    			 String trait_nom = request.getParameter("nom_jsp");
                 int taille = ((Integer)request.getAttribute("tailleTab")).intValue();
    			 String[][] table = new String[taille][2];
                 for(int i=0; i < taille;i++)
    			 {
    				if(request.getAttribute(Type_Contrat[i][0]) != null)
    					table[i][1]  = "checked";
    				else
    					table[i][1]  = "";
     
    			 }
     
                 request.setAttribute("type_servlet",table);
                 request.setAttribute("nom_servlet",trait_nom);
            }
     
                 String nextJSP = "/index.jsp";
                 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
                 dispatcher.forward(request,response);
       }

    Aidez moi s'il vous plaît !!

    Merciiiii

  3. #3
    Membre chevronné
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Points : 2 061
    Points
    2 061
    Par défaut
    Bonjour,

    je vois deux solutions (à la con), la première serait de faire la validation en javascript (), la deuxième serait de faire un BeanUtils.copyProperties(), mais je pense que c'est une méthode accessible qu'avec Struts et Spring.
    Bon courage.
    Yoshi

    PS : tous les propos tenus dans le message ci-dessus sont à préfixer avec "A mon humble avis", "Je pense que". Il serait inutilement fastidieux de le rappeler à chaque phrase.

  4. #4
    Membre du Club Avatar de sisiniya
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 67
    Points
    67
    Par défaut
    Merci pour votre réponse .

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/10/2007, 18h37
  2. conserver les valeurs entrées dans un formulaire
    Par mitmit dans le forum Langage
    Réponses: 5
    Dernier message: 03/05/2007, 10h09
  3. Réponses: 2
    Dernier message: 25/01/2007, 13h42
  4. Réponses: 8
    Dernier message: 19/05/2005, 16h03

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