web-dev-qa-db-fra.com

cocher les cases à cocher sélectionnées à l'aide de Java (un jsp)

J'essaie de créer un servlet qui affiche un formulaire simple avec des cases à cocher, lorsque l'utilisateur sélectionne le nombre de cases à cocher qu'il souhaite et clique sur un "confirmer" la demande POST dans mon servlet vérifie les cases cochées et interroge la base de données. 

Je ne sais pas comment faire cela en Java, car l'utilisateur peut sélectionner une ou plusieurs cases à cocher. si quelqu'un pouvait expliquer cela avec un petit exemple, ce serait formidable.

Je suis très nouveau en programmation et fournirais un extrait de code si je savais le faire.

8
Rahul Kumar

C'est en fait la question du comportement du formulaire HTML. Lorsque vous cochez quelques cases avec un attribut "name" et différents attributs "valeur" et que vous appuyez sur le bouton d'envoi, votre navigateur envoie une demande au serveur avec les valeurs de case à cocher cochées. Ainsi, vous pouvez obtenir des noms de valeur à partir de ces paramètres d'URL.

Par exemple:

<form name="input" action="html_form_action.asp" method="get">
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car 
<br><br>
<input type="submit" value="Submit">
</form>

Si vous cochez les deux cases, votre serveur recevra ces paramètres comme suit:

http://example.com/your_page.jsp?vehicle=Bike&vehicle=Car 

Après cela, vous pouvez obtenir des valeurs comme celle-ci:

String checkboxValues = request.getParameter("vehicle");

checkboxValues ​​obtient toutes les valeurs séparées par une virgule.

7
Maxim Kolesnikov
<%@ page language="Java"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>JSP Multiple Checkbox</title>
    </head>
    <body>
        <form name="form1" onsubmit="checkBoxValidation()">
            <h3>Select your favorite Fruits</h3>
            <p><input type="checkbox" name="fruit" value="Mango"/>Mango</p>
            <p><input type="checkbox" name="fruit" value="Apple"/>Apple</p>
            <p><input type="checkbox" name="fruit" value="Grapes"/>Grapes</p>
            <p><input type="checkbox" name="fruit" value="Papaya"/>Papaya</p>
            <p><input type="checkbox" name="fruit" value="Lychee"/>Lychee</p>
            <p><input type="checkbox" name="fruit" value="Pineapple"/>Pineapple</p>
            <p><input type="submit" value="submit"/>
        </form>
        <%String fruits[]= request.getParameterValues("fruit");
        if(fruits != null){%>
        <h4>I likes fruit/s mostly</h4>
        <ul><%for(int i=0; i<fruits.length; i++){%>
            <li><%=fruits[i]%></li><%}%>
        </ul><%}%>
    </body>
</html>

Exécutez cet exemple jsp sur votre conteneur Web pour obtenir une idée de base sur son fonctionnement. Vous devez déplacer la logique d'affichage sur cette page qui intègre le paramètre de demande dans votre code de servlet lors de la soumission du formulaire. Cet exemple peut être trouvé à partir de ici . J'espère que cela aiderait.

8
Dinakar

Dans votre servlet, vous utiliseriez getParameter () comme ceci:

request.getParameter( "id_of_checkbox" )

Cette fonction retourne null si la case n'est pas cochée. Pour que vous puissiez faire quelque chose comme:

boolean myCheckBox = request.getParameter( "id_of_checkbox" ) != null;

Maintenant, myCheckBox est true si coché, false si non coché.

5
noisewaterphd

Celui-ci pourrait être plus simple si vous voulez juste la sortie. En supposant que vous utilisez les bibliothèques jstl, ce que je préfère parce que cela rend vos pages plus propres:

<c:forEach var='fruitValue' items='${paramValues.fruit}'> 
   ${fruitValue} <br>
</c:forEach>
0
Nomad