2013-07-26 12 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> 

To jest mój kod chcę dodać ArrayList w rozwijanej w JSP nie wiem jak powiązać ArrayList w html obtion lub rozwijanej proszę mi pomóc Próbowałem wiele, ale nie może zrobić to.jak dodać ArrayList w JSP

+3

Staraj się nie używać skryptletów w stronach JSP. –

Odpowiedz

3

EDITED

Spróbuj tego:

<% 

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

otrzymywanie Błąd al nie może być rozwiązany –

+0

To był literówka, to nie jest a1, ale al w _for (Opcja String: al) _ – morgano

+0

nadal mam błąd z tym –

12

Musisz użyć JSTL<forEach> do iterowania elementów i dodania go do select-option. Prawdopodobnie zmień atrybut na zakres na List. Wypełnij obiekt List w aplecie, ustaw go w zasięgu request/session i przesyłaj request do tej strony JSP. Pamiętaj, że możesz wypełnić List w samym JSP i użyć pageScope, aby go polecić, ale moim zdaniem będzie to zły projekt.

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

Tutaj al to nazwa atrybutu, który przechowuje List w prawdopodobnie request lub session zakresie.

Korzystanie JSTL w projekcie:

  1. DownloadJSTL 1,2 jar.

  2. Deklaracja taglib w pliku JSP dla JSTL core taglib.

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

Jeśli chcesz korzystać tylko te scriptlets (co jest źle z kursu):

<% 

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

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

Powyższy kod będzie działać, jeśli zostanie zdefiniowany List jako List<String>, albo musisz rzucić element do String.

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

+0

proszę zaktualizować mój kod tak, że mogę go umieścić próbowałem robię pierwszy raz chcę się uczyć –

+0

@TheNewIdiot: Zastanawiam się, czy powyższe 'for' jest lepsze niż' Iterator'. –

+0

@DigvijayYadav 'Iterator' oznacza więcej kodu do napisania w tym przypadku: P – NINCOMPOOP

1

Spójrz na znaczniku w bibliotece rdzeń JSTL.

przechowywać ArrayList w pageScope.myList i pętla następująco:

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

To jest lepsze niż przy użyciu scriptlets, które nie są uważane za dobre praktyki

1

Spróbuj to: zadeklarować swój ArrayList pomiędzy <%! … %>

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