2009-12-18 13 views

Respuesta

54

Devuelve todos los valores de parámetros para los controles con el mismo nombre .

Por ejemplo:

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

o

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

Cualquier valor controladas/seleccionados vendrán como:

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

También es útil para múltiples selecciones en tablas:

<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 combinación con

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

Gracias por los comentarios. Tiene perfecto sentido ahora. A veces es fácil pasar por alto las cosas obvias. Supongo que eso es lo que este sitio web es para :) – BillMan

2

Si tiene un control de varios valores como una lista multi-seleccionable o un conjunto de botones asignados al mismo nombre, las selecciones múltiples se asignarán a una matriz.

+0

No estoy seguro de si veo el valor en el caso de los botones. En buscadores decentes, solo devolverá el valor del botón ** presionado **, no el valor de los botones ** todo **. – BalusC

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

"Biff" ahora se correlaciona con {"banana","pear","grape"}

3

En el caso de los controles de valores múltiples (casilla de verificación, selección múltiple, etc.), la request.getParameterValues(..) es usado para obtener los valores.

9

La función real de obtener todos los valores de los parámetros es

request.getParameterValues(); 

getParameter() es sólo un atajo para llegar primero.

Cuestiones relacionadas