c:forEach und var="bla" ?

  • Themenstarter Themenstarter javaDummi
  • Beginndatum Beginndatum
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]
 
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
 
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
 
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?
 
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.

Zurück
Oben