2013-07-26 15 views
6
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
    </head> 
    <body> 
<%=new Date() %> 

<% 
ArrayList al = new ArrayList(); 
al.add("C"); 
al.add("A"); 
al.add("E"); 
al.add("B"); 
al.add("D"); 
al.add("F"); 
%> 

    <select> 
     <option value="<%=al%>"></option> 
    </select> 
    </body> 
</html> 

Questo è il mio codice voglio aggiungere Arraylist in discesa in JSP Non so come associare arraylist in html obtion o discesa per favore mi aiuti ho provato molto, ma in grado di fare Questo .come aggiungere arraylist in JSP

+3

Cerca di non utilizzare scriptlet in JSP. –

risposta

3

CURA

Prova questa:

<% 

ArrayList al = new ArrayList(); 
al.add("C"); 
al.add("A"); 
al.add("E"); 
al.add("B"); 
al.add("D"); 
al.add("F"); 

%> 

<select> 
    <% for(int i = 0; i < al.size(); i++) { 
      String option = (String)al.get(i); 
    %> 
    <option value="<%= option %>"><%= option %></option> 
    <% } %> 
</select> 
</body> 
</html> 
+0

ottenere errore al non può essere risolto –

+0

Era un errore di battitura, non è a1 ma al (Opzione stringa: al) _ – morgano

+0

ha ancora l'errore Con quello –

12

È necessario utilizzare JSTL<forEach> per iterare tra gli elementi e aggiungerlo allo select-option. Probabilmente rendi lo List un attributo con scope. Popolare l'oggetto List nel servlet, impostarlo in ambito request/session e inoltrare lo request a questo JSP. Ricorda che puoi popolare lo List nello stesso JSP e usare pageScope per riferirlo, ma a mio avviso questo sarebbe un cattivo progetto.

<select> 
<c:forEach var="element" items="${al}"> 
    <option value="${element}">${element}</option> 
</c:forEach> 
</select> 

Qui, al è il nome dell'attributo che memorizza l'List in probabilmente request o session ambito.

Usa JSTL nel progetto:

  1. Download il JSTL 1.2 vaso.

  2. Dichiarare il taglib nel file JSP per JSTL core taglib.

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    

Se si desidera utilizzare solo le scriptlet (che è male fuori corso):

<% 

List<String> al = new ArrayList<String>(); 
al.add("C"); 
.......... 
........... 

%> 
<select> 
    <% for(String element: al) { %> 
    <option value="<%=element%>"><%=element%></option> 
    <% } %> 
</select> 

Il codice qui sopra funziona se si è definito il List come List<String>, oppure devi trasmettere l'elemento a String.

Leggi How to avoid Java Code in JSP-Files?.

+0

si prega di aggiornare il mio codice in modo che io possa Metterlo ho provato sto facendo la prima volta voglio imparare –

+0

@TheNewIdiot: Mi chiedo se la suddetta istruzione 'for' è meglio di' Iterator'. –

+0

@DigvijayYadav 'Iterator' significa più codice da scrivere in questo caso: P – NINCOMPOOP

1

Date un'occhiata al tag nella libreria di base JSTL.

Conservare l'ArrayList in pageScope.myList e ciclo come segue:

<select> 
<c:forEach items="${pageScope.myList}" var="item" varStatus="status"> 
<option value='${item}'></option> 
</c:forEach > 
</select> 

Questo è preferibile rispetto all'utilizzo di scriptlets che non sono considerate buone pratiche

1

Prova questo: dichiarare il vostro ArrayList tra <%! … %>

<%! ArrayList al = new ArrayList(); %>