2010-03-09 717 views
20

Tengo un formulario html que tiene un cuadro de lista de selección desde el que puede seleccionar varios valores porque su propiedad múltiple está establecida en múltiple. Considere la forma de método es obtener método. El código html para formulario es el siguiente.¿Cómo obtener múltiples valores seleccionados del cuadro de selección en JSP?

<html> 
<head> 
<title>Untitled Document</title> 
</head> 
<body> 
<form id="form1" name="form1" method="get" action="display.jsp"> 
    <table width="300" border="1"> 
    <tr> 
     <td><label>Multiple Selection </label>&nbsp;</td> 
     <td><select name="select2" size="3" multiple="multiple" tabindex="1"> 
     <option value="11">eleven</option> 
     <option value="12">twelve</option> 
     <option value="13">thirette</option> 
     <option value="14">fourteen</option> 
     <option value="15">fifteen</option> 
     <option value="16">sixteen</option> 
     <option value="17">seventeen</option> 
     <option value="18">eighteen</option> 
     <option value="19">nineteen</option> 
     <option value="20">twenty</option> 
     </select> 
     </td> 
    </tr> 
    <tr> 
     <td>&nbsp;</td> 
     <td><input type="submit" name="Submit" value="Submit" tabindex="2" /></td> 
    </tr> 
    </table> 
</form> 
</body> 
</html> 

Quiero mostrar los valores seleccionados en el cuadro de lista de selección en la página display.jsp. Entonces, ¿cómo se accede a los valores seleccionados en la página display.jsp?

+0

@skaffman - Me tagged 'servlets', debido a que la recuperación de los parámetros de la petición se hace a través de la API de servlets – Bozho

Respuesta

7

Algo a lo largo de las líneas (usando JSTL):

<p>Selected Values: 
<ul> 
    <c:forEach items="${paramValues['select2']}" var="selectedValue"> 
    <li><c:out value="${selectedValue}" /></li> 
    </c:forEach> 
</ul> 
</p> 
1

parecería overkill pero la primavera Formas encarga de esta forma elegante. Eso es, por supuesto, si ya está utilizando Spring MVC y desea aprovechar la función Spring Forms.

// jsp form 
    <form:select path="friendlyNumber" items="${friendlyNumberItems}" /> 

    // the command class 
    public class NumberCmd { 
     private String[] friendlyNumber; 
    } 

    // in your Spring MVC controller submit method 
    @RequestMapping(method=RequestMethod.POST) 
    public String manageOrders(@ModelAttribute("nbrCmd") NumberCmd nbrCmd){ 

     String[] selectedNumbers = nbrCmd.getFriendlyNumber(); 

    } 
3

Como no encuentro una respuesta sencilla, solo agrego más esta será la página JSP. guarde este contenido en un archivo jsp una vez que se ejecute, podrá ver los valores de la pantalla seleccionada.

Actualización: guardar el archivo como test.jsp y ejecutarlo en cualquier servidor web/app

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<%@ page import="java.lang.*" %> 
<%@ page import="java.io.*" %> 
<% String[] a = request.getParameterValues("multiple"); 
if(a!=null) 
{ 
for(int i=0;i<a.length;i++){ 
//out.println(Integer.parseInt(a[i])); //If integer 
out.println(a[i]); 
}} 
%> 
<html> 
<body> 
<form action="test.jsp" method="get"> 
<select name="multiple" multiple="multiple"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select> 
<input type="submit"> 
</form> 
</body> 
</html> 
Cuestiones relacionadas