2009-12-18 4 views

Répondre

54

Il renvoie toutes les valeurs de paramètre pour les contrôles avec le même nom.

Par exemple:

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

ou

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

Tout cochée/valeurs sélectionnées viendra en tant que:

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

Il est également utile pour plusieurs sélections dans les tableaux:

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

en combinaison avec

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

Merci pour les commentaires. Cela a parfaitement du sens maintenant. Parfois, il est facile de rater les choses évidentes. Je suppose que c'est ce que ce site web si pour :). – BillMan

2

Si vous disposez d'un contrôle à valeurs multiples comme une liste à sélection multiple ou un ensemble de boutons mappés au même nom, plusieurs sélections seront mappées à un tableau.

+0

Je ne suis pas sûr si je vois la valeur dans le cas des boutons. Dans les navigateurs décents, il ne restituera que la valeur du bouton ** pressé **, pas la valeur des boutons ** all **. – BalusC

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

"Biff" Cartes maintenant {"banana","pear","grape"}

3

Dans le cas des contrôles à valeurs multiples (cases à cocher, multi-select, etc.), le request.getParameterValues(..) est utilisé pour récupérer les valeurs.

9

La fonction réelle pour obtenir toutes les valeurs des paramètres est

request.getParameterValues(); 

getParameter() est juste un raccourci pour obtenir premier.

Questions connexes