2010-12-08 20 views
1

Dans mon application, j'utilise 2 zones de liste dans lesquelles je souhaite déplacer les éléments sélectionnés de l'un à l'autre. Je sais assigner des valeurs à la zone de liste de la base de données. Mais je ne sais pas comment assigner une valeur de tableau de chaînes du fichier java au champ html. Dans mon 'record.java' j'ai le code suivant:JSP listbox et Servlet

public class Report 
{ 
    private static String[] types = { 
     "Value1", 
     "Value2" 
    }; 

    private static String[] fields = { 
     "number1", 
     "number2" 
    }; 

    public static String[] getList() { 
     return types; 
    } 

    public static String getFieldName(String description) { 
     for(int i=0; i< fields.length; i++) { 
      if (description.compareToIgnoreCase(types[i]) ==0) 
       return fields[i]; 
     } 
     return ""; 
    } 
} 

et j'ai mon fichier 'chart.jsp' comme suit:

<form method="post"> 
      <fieldset> 
       <legend>Chart Data</legend> 
       <br/> 
       <br/> 
       <table > 
        <tbody> 
         <tr> 
          <td> 
           <select name="data" size="5" id="s"> 
           <option value=""></option> 
           </select> 
          </td> 
          <td> 
           <input type="submit" value="<<"/> 
          </td> 
          <td> 
           <select name="data" size="5" id="d"> 
           <option value=""></option> 
           </select></td> 
         </tr> 
        </tbody> 
       </table> 
       <br/> 
      </fieldset> 
      <input class="submit" type="submit" value="Submit" /> 
     </form> 

Je suis nouveau à JSP. Quelqu'un peut-il m'aider à faire cela? Merci Vous ....

Répondre

4

Le getter ne doit pas être statique:

public String[] getList() { 
    return types; 
} 

Une instance de Report doit être placé dans la portée de la demande dans doGet() méthode du servlet:

Report report = loadItSomehow(); 
request.setAttribute("report", report); 
request.getRequestDispatcher("page.jsp").forward(request, response); 

De cette façon, il sera disponible dans JSP EL en tant que ${report} et la liste est disponible en tant que ${report.list}. Vous pouvez utiliser JSTL c:forEach pour parcourir un tableau ou List.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
... 
<select name="types" size="5"> 
    <c:forEach items="${report.list}" var="type"> 
     <option value="${type}">${type}</option> 
    </c:forEach> 
</select> 

Notez que vous ne devez pas donner le même nom aux éléments d'entrée indépendants.

+0

Merci Balus .... Cela m'a beaucoup aidé ... – Maya