2013-04-02 13 views
7

Ich versuche, ein Servlet zu erstellen, das ein einfaches Formular mit Kontrollkästchen anzeigt, wenn der Benutzer die Anzahl der Checkboxen auswählt und auf eine "Bestätigung" der POST-Anfrage klickt überprüft in meinem Servlet, welche Boxen geprüft wurden und fragt die Datenbank ab.Überprüfen, welche Kontrollkästchen mit JAVA (a Jsp) ausgewählt sind

Ich bin unsicher, wie dies in Java zu tun ist, da der Benutzer entweder 1 oder mehrere Kontrollkästchen auswählen kann. Wenn jemand das mit einem kleinen Beispiel erklären könnte, wäre das großartig.

Ich bin sehr neu in der Programmierung und würde ein Code-Snippet bereitstellen, wenn ich wüsste, wie es geht.

Antwort

7

Dies ist eigentlich die HTML-Formular Verhaltensfrage. Wenn Sie einige Kontrollkästchen mit einem "name" -Attribut und verschiedenen "value" -Attributen aktivieren und die Senden-Schaltfläche drücken, sendet Ihr Browser eine Anfrage an den Server mit aktivierten Checkbox-Werten. So können Sie Wertnamen von diesen URL-Parametern erhalten.

Zum Beispiel:

<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> 

Wenn Sie beide Kontrollkästchen des Servers überprüfen werden diese Parameter erhalten wie folgt:

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

Danach können Sie Werte wie diese:

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

checkboxValues ​​ruft alle durch Komma getrennten Werte ab.

+0

in meinem Fall, erhalte ich nur ein Wert, obwohl ich beiden Werte mehr Kontrollkästchen und meine Abfrage-String hat gewählt habe Ähnliche was hast du gesagt. – amyn

3

In Ihrem Servlet würden Sie getParameter() wie so verwenden:

request.getParameter("id_of_checkbox") 

Diese Funktion null zurück, wenn die das Feld nicht aktiviert ist. So könnten Sie etwas tun wie:

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

Jetzt myCheckBox ist wahr, wenn aktiviert, falsch, wenn nicht aktiviert.

7
<%@ 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> 

Führen Sie dieses Beispiel jsp auf Ihrem Webcontainer aus, um eine Grundidee zu erhalten, wie es funktioniert. Sie müssen die Anzeigelogik auf dieser Seite verschieben, die beim Formularübermitteln den Anfrageparameter in Ihren Servlet-Code eingibt. Dieses Beispiel finden Sie unter here. Hoffe, das würde helfen.

0

Dieser könnte besser sein, wenn Sie nur die Ausgabe wollen. Angenommen, Sie jstl Bibliotheken verwenden, die ich bevorzuge, weil es Ihre Seiten machen Reiniger:

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