# JSTL - foreach Schleife ?



## stockhausen (9. Mrz 2010)

Hallo,

ich versuche eine simple foreach Schleife zu schreiben. Aus irgendeinem Grund wird nichts ausgegeben!
Ich erhalte auch keine Fehlermeldung. Was ist der Grund? 
Habe erwartet, dass die Namen (Name1 und Name2) ausgegeben werden.

Gruß,
Michael


```
<% 
ArrayList<String> personen = new ArrayList<String>();
personen.add("Name1");
personen.add("Name2");
%>
<c:forEach var="person" items="${personen}">
	<c:out value="${person}" />
</c:forEach>
```


----------



## byte (9. Mrz 2010)

Schätzungsweise musst Du personen noch dem Request hinzufügen, damit die forEach die Variable kennt.

PS: <% Scriptlets %> sind übrigens ziemlich schlechter Stil. Der Code gehört in ein Servlet, das dann die JSP erzeugt.


----------



## stockhausen (9. Mrz 2010)

Hallo Byte, 

du hattest recht mit dem request!


```
request.setAttribute("personen", personen);
```

Aber warum ist das so???  Ich habe doch die ArrayList in der gleichen Datei deklariert!

Gruß,
Michael

p.s.: zum Thema Scriptlets: ich möchte auf die schnelle ein paar JSTL-Tags testen und habe mir arbeit ersparen wollen


----------



## byte (9. Mrz 2010)

Ist halt so. JSTL EL greift nacheinander auf die verschiedenen Scopes zu (request, session, ...). Variablen in Scriplets sind perse erstmal lokale Variablen, die nur in diesem Scriptlet sichtbar sind. Und wie gesagt: Scriptlets benutzt eh kein Mensch, ausser zum testen.


----------

