web-dev-qa-db-fra.com

Comment obtenir plusieurs valeurs sélectionnées à partir de la zone de sélection dans JSP?

J'ai un formulaire HTML qui a une zone de liste de sélection à partir de laquelle vous pouvez sélectionner plusieurs valeurs car sa propriété multiple est définie sur multiple . Considérons que la méthode de forme est get méthode. Le code html pour la forme est comme suit.

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

Je souhaite afficher les valeurs sélectionnées dans la liste déroulante de la page display.jsp. Alors, comment accéder aux valeurs sélectionnées sur la page display.jsp.

21
Param-Ganak

request.getParameterValues("select2") retourne un tableau de toutes les valeurs soumises.

42
Bozho

Quelque chose dans le sens de (avec JSTL):

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

Depuis que je ne trouve pas une réponse simple en ajoutant simplement plus ce sera la page de JSP. enregistrer ce contenu dans un fichier jsp une fois que vous avez exécuté, vous pouvez voir les valeurs de la sélection sélectionnée.

Mise à jour: enregistrez le fichier sous test.jsp et exécutez-le sur n’importe quel serveur Web/application

<!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>
4
Shiva

Cela semblerait exagéré, mais Spring Forms s'en occupe avec élégance. C'est bien sûr si vous utilisez déjà Spring MVC et que vous souhaitez tirer parti de la fonctionnalité 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();

    }
1
averymogen