2013-04-02 14 views
7

Sto provando a creare un servlet che visualizza un modulo semplice con caselle di controllo, quando l'utente seleziona il numero di caselle di controllo che desidera e fa clic su "conferma" la richiesta POST nel mio servlet controlla quali caselle sono state controllate e le query sono basate sul database.controllare quali caselle di controllo sono selezionate utilizzando JAVA (a jsp)

Non sono sicuro su come eseguire questa operazione in Java poiché l'utente può selezionare 1 o più caselle di controllo. se qualcuno potesse spiegarlo con un piccolo esempio, sarebbe fantastico.

Sono molto nuovo alla programmazione e fornirebbe uno snippet di codice se avessi saputo come farlo.

risposta

7

Questa è in realtà la domanda sul comportamento del modulo HTML. Quando selezioni alcune caselle con un attributo "nome" e diversi attributi "valore" e premi il pulsante Invia, il browser invierà una richiesta al server con i valori della casella di controllo selezionata. Quindi puoi ottenere nomi di valori da questi parametri url.

Ad esempio:

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

Se si controlla entrambe le caselle di controllo il server riceverà questi parametri in questo modo:

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

Dopo di che è possibile ottenere i valori in questo modo:

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

checkboxValues ​​ottiene tutti i valori separati da una virgola.

+0

nel mio caso, sto ricevendo solo 1 valore, anche se ho selezionato più caselle di controllo e la mia stringa di query ha entrambi i valori simili a cosa hai detto. – amyn

3

Nel vostro servlet usereste getParameter() in questo modo:

request.getParameter("id_of_checkbox") 

Tale funzione restituisce null se la casella non è selezionata. Così si potrebbe fare qualcosa di simile:

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

Ora myCheckBox è vero se controllato, false se non selezionato.

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> 

eseguire questo esempio jsp sul vostro web container per ottenere qualche idea di base su come funziona. È necessario spostare la logica di visualizzazione su questa pagina che ottiene il parametro di richiesta nel codice servlet sull'invio del modulo. Questo esempio può essere trovato da here. Spero che questo sarebbe di aiuto.

0

Questo potrebbe essere più ordinato se si desidera solo l'uscita. Supponendo che si sta utilizzando le librerie JSTL, che preferisco perché rende le pagine più pulito:

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