2009-12-18 11 views

Antwort

54

Es gibt alle Parameterwerte für Steuerelemente mit dem gleichen Namen zurück.

Zum Beispiel:

<input type="checkbox" name="cars" value="audi" /> Audi 
<input type="checkbox" name="cars" value="ford" /> Ford 
<input type="checkbox" name="cars" value="opel" /> Opel 

oder

<select name="cars" multiple> 
    <option value="audi">Audi</option> 
    <option value="ford">Ford</option> 
    <option value="opel">Opel</option> 
</select> 

Any geprüft/ausgewählten Werte kommen als:

String[] cars = request.getParameterValues("cars"); 

Es ist auch nützlich für mehrere Auswahlen in Tabellen:

<table> 
    <tr> 
     <th>Delete?</th> 
     <th>Foo</th> 
    </tr> 
    <c:forEach items="${list}" var="item"> 
     <tr> 
      <td><input type="checkbox" name="delete" value="${item.id}"></td> 
      <td>${item.foo}</td> 
     </tr> 
    </c:forEach> 
</table> 

in Kombination mit

itemDAO.delete(request.getParameterValues("delete")); 
+5

Danke für die Rückmeldung. Es macht jetzt vollkommen Sinn. Manchmal ist es leicht, das Offensichtliche zu übersehen. Ich denke, das ist, was diese Website für :). – BillMan

2

Wenn Sie eine mehrwertige Steuerung wie eine mehrfach auswählbare Liste oder eine Gruppe von Schaltflächen haben, die demselben Namen zugeordnet sind, werden mehrere Auswahlen einem Array zugeordnet.

+0

Ich bin nicht sicher, ob ich den Wert im Falle von Tasten sehe. In vernünftigen Browsern wird nur der Wert der Taste ** gedrückt ** zurückgegeben, nicht der Wert von ** alle ** Tasten. – BalusC

19
http://foo.com/bar?biff=banana&biff=pear&biff=grape 

"biff" maps nun {"banana","pear","grape"}

3

in dem Fall mit mehreren Werten Kontrollen (Checkbox, multi-Select, etc), die request.getParameterValues(..) verwendet wird, um die Werte zu holen.

9

Die eigentliche Funktion, um alle Parameterwerte zu erhalten, ist

request.getParameterValues(); 

getParameter() ist nur eine Verknüpfung zuerst eine zu bekommen.

Verwandte Themen