c:forEach und var="bla" ?

Status
Nicht offen für weitere Antworten.
J

javaDummi

Gast
Hallo zusammen

wieso geht das nicht

Code:
<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

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

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

</c:forEach>



gruesse
 
G

Gast

Gast
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
 
S

SlaterB

Gast
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?
 
G

Guest

Gast
Code:
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

Code:
<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=....
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben