# c:foreach - Problem bei Arrays



## Strowi (1. Mai 2005)

hi zusammen,

nachdem ich mich schon längere Zeit auch mit Java auseinandergesetzt habe, hab ich vor ein paar Wochen auch mit JSP angefangen.
Leider habe ich anscheinend noch ein ziemliches Problem mit den JSTL-Iterationen.

Ich habe mal ne JSP geschrieben, die eine CSV-Datei als Tabelle ausgibt, bis jetzt eben alles mit Scriptlets.
Um das  nun etwas sauberer hinzubekommen (und auch um endlich mal in die Taglibs einzusteigen) probiere ich nun leider vergeblich, das mit dem c:forEach-Tag hinzubekommen.

Hier mal ein Codefragment:

```
<%
    String csvpath = request.getRealPath("csvfile.csv");
    String[][] values = CSVParser.parse(new FileReader(csvpath));

    for (int i=0;i< values.length ;i++){
        for (int j=0;j< values.length ;j++){
        ... Tabellen-Formatierung

        out.print(values[i][0]);

        ....
        }
    }
%>
```

Das würde ich nun gerne so erledigen:

```
String csvpath = request.getRealPath("csvfile.csv");
    String[][] values = CSVParser.parse(new FileReader(csvpath));
    
    <c:forEach var="i" begin="0" end="10" step="1">
        ... Tabellen-Formatierung
        <% out.println(value[${i}][0]);
        ...
    </c:forEach>
```

ABER leider gibt's hier Probleme mit dem ${i}, welches er nicht als EL zu erkennen scheint.


PS: evtl. besser ein eigener Thread, aber kann mir vielleicht ganz kurz noch jmd. schreiben wie man z.B. "String[][] values" von der JSP in eine einebundene Java-Klasse übergeben bekommt?


vielen Dank schonmal im voraus!

Ciao,
        Strowi[/code]


----------



## Thomas Darimont (2. Mai 2005)

Hallo!

Schau mal hier:

```
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
	<head><title>Foo</title>
	</head>
	<body>
	<% String[][] str = {{"a0","b0"},{"a1","b1"},{"a2","b2"}}; %>
	
	<table>
		<c:forEach var="i" items = "<%= str %>">
			<tr>
			<c:forEach var="j" items = "${i}">				
				<td><c:out value="${j}"/></td>
			</c:forEach>
			</tr>
		</c:forEach>
	</table>
	
	</body>
</html>
```

Ergibt:

```
<html>
	<head><title>Foo</title>
	</head>
	<body>
	<table>
			<tr>
				<td>a0</td>
				<td>b0</td>
			</tr>
			<tr>
				<td>a1</td>
				<td>b1</td>
			</tr>
			<tr>
				<td>a2</td>
				<td>b2</td>
			
			</tr>
	</table>
	</body>
</html>
```

Gruß Tom


----------



## Strowi_ (3. Mai 2005)

Ahhh 

Danke, ich denke das hilft mir weiter. "items" gibt also quasi an worüber iteriert wird... Werd mir das morgen mal genauer anschauen, sobald ich Netbeans auch unter Linux ordentlich ans laufen gebracht habe.


----------

