# logic:iterate durch JSTL ersetzen?



## TSH (18. Dez 2007)

Hallo,

ich verwende bisher in meiner jsp-Datei diesen Aufruf, um eine Liste übergebener Beans durchzugehen:


```
<logic:iterate name="${beanType}" id="hyperlink" type="path.to.my.beans.HyperlinkBean">
  [*][url="${hyperlink.uri}"]<c:out value="${hyperlink.label}"/>[/url]
</logic:iterate>
```

Da ich nun auf Tiles2 umgestellt habe und überhaupt nichts mehr aus dem Struts-Projekt benötige, würde ich gerne Struts komplett aus dem Projekt entfernen inkl. aller Bibliotheken. Meine Frage ist daher: Kann ich o.g. Code durch irgendwas aus den JSTL ersetzen?

Ich hab's spontan mit <c:forEach> versucht, aber das hier:


```
<c:forEach items="${beanType}" var="hyperlink" type="path.to.my.beans.HyperlinkBean">
  [*][url="${hyperlink.uri}"]<c:out value="${hyperlink.label}"/>[/url]
</c:forEach>
```

führte zur Fehlermeldung:


> Attribute type invalid for tag forEach according to TLD



Jemand eine Idee?


----------



## ms (18. Dez 2007)

Bei "items" musst du eine Collection, Iterator, ...  oder ein Array übergeben.

ms


----------



## TSH (18. Dez 2007)

Danke. Das übergebene Object ist eine ArrayList, was doch eigentlich Collection implementieren sollte, oder?


----------



## ms (18. Dez 2007)

Der ForEach-Tag kennt kein Attribut "type", habs erst beim zweiten mal hinsehen bemerkt.

ms


----------



## TSH (18. Dez 2007)

Hm, wenn ich den Type weg nehme, hält die Schleife die Bean für einen String:


> Property 'uri' not found on type java.lang.String


Das ist natürlich nicht so schön. Kann ich mit forEach nicht auf Eigenschaften der Beans zurückgreifen?


----------



## TSH (18. Dez 2007)

Problem gelöst. Die Variable var=hyperlink war nicht mit Klammern versehen. Daher wurde sie nicht richtig erkannt. Danke für die Hilfe, jetzt klappt's!


----------



## nightpoet (21. Dez 2007)

TSH hat gesagt.:
			
		

> Problem gelöst. Die Variable var=hyperlink war nicht mit Klammern versehen. Daher wurde sie nicht richtig erkannt. Danke für die Hilfe, jetzt klappt's!



Hallo

Was hast Du genau gemacht?

Habe zurzeit nämlich genau das gleiche Problem.

Viele Grüße


----------

