Witajcie,
Mam pewien problem by przeiterować kolekcję ArrayList w JSP przy użyciu języka wyrażeń EL/
Utworzyłem sobie prostą klasę jako JavaBean:
public class DataSource
{
public DataSource() { }
public int getId() { return 555; }
public String getSymbol() { return "TEST TEST"; }
}
Następnie utworzyłem ArrayList-e zawierającą kilka instancji powyższej klasy.
List<DataSource> list = new ArrayList<DataSource>();
DataSource ds = new DataSource();
list.add(ds);
list.add(ds);
list.add(ds);
request.setAttribute("list", list);
Teraz w kodzie JSP próbuje przejść przez wszystkie elementy i wyświetlić jakieś pole.
${requestScope.list} <!-- to wyświetla tablice z hashami dla każdego z 3 elementów --!>
<table>
<c:forEach var="ds" items="${requestScope.list}">
<tr>
<td>ID: ${ds.id}</td>
</tr>
</c:forEach>
</table>
Niestety w żaden sposób nie chce mi pobrać wartość id.
Pętla for w samym servlecie działa poprawnie:
for (DataSource row : list) {
System.out.println(row.getId());
}
Co mogę robić źle ?
Dla testu do strony JSP dodałem zwykłe scriptlet
<%
List<DataSource> list = (List) request.getAttribute("list");
for (DataSource s : list) { %>
<%= s.getId() %>
<% } %>
i to działa poprawnie.
PS: Używam serwera Tomcat 7. Widzę że w ogóle mi nie widzi akcji JSTL :(. W NetBeansie załadowałem 2 pliki jar do projektu jstl-impl-1.2.jar oraz jstl-api-1.2.jar bez skutku :(