# c:forEach und var="bla" ?



## javaDummi (27. Okt 2006)

Hallo zusammen

wieso geht das nicht


```
<jsp:useBean id="myBean" class="wza.TestList" scope="application"/>

<%
java.util.ArrayList test = (java.util.ArrayList)myBean.getCollection();
out.println("Size: " + test.size());
pageContext.setAttribute("test", test);
%>

<body bgcolor="white">

<c:forEach ????????????? items="${test}"  varStatus="index" >
	<c:out value="${x}"/>
</c:forEach>
```

Wenn ich bei ????? var="x"  eingebe kommt

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:820)


ohne wird sauber iteriert....habe aber keine zugriffe auf die Elemente
was mache ich falsch?????

thx[/quote]


----------



## EOB (31. Okt 2006)

dann setz doch mal anders...session oder page oder sowas. was passiert dann? eigentlich brauchst du das nicht unbedingt.


```
<c:forEach items="${test}" var="item" >
	${item}

</c:forEach>
```



gruesse


----------



## Gast (5. Nov 2006)

danke...hab so ziemlich alles  ausproiert
was mir so eingefallen ist
nix ist gegangen....keine Ahnung wieso...

habs array direkt ausgelesen obwohl ich
dies verhindern wollte.....

thx


----------



## SlaterB (5. Nov 2006)

ist das ein Array oder eine ArrayList? vielleicht eine Subklasse von ArrayList (Klassenname ausgeben),

kannst du im Javacode diese Liste mit 
for() {
get(i)
}
durchlaufen?

probiere es alternativ zu deinem Bean mit new ArrayList(), kommt dann auch der Fehler?


----------



## Guest (6. Nov 2006)

```
public class TestList {

	public ArrayList<Book> list = new ArrayList<Book>(); //java.util.ArrayList

	public TestList(){
		Book s1...
		list.add(s1);

	}
	
	public Collection getCollection(){
		return list;
	}
	
	public static boolean equals(Book s, Book a){
		return s.getName().equals(a.getName());
	}
}
```

so ist der dummy bean....
also 0815...nix wildes


```
<c:forEach  items="${test}" varStatus="index">
	<c:out value="${test[index.count-1].name}" />
</c:forEach>
```

so laufts ohne problem....drum nix ahnung wieso
es nicht geht ohne <%%> code und direkt
auf die liste zugreifen.
funktioniert ja auch nicht bei expliziter copie
mit var=....


----------

