# ArrayList in JSP ausgeben



## rod (14. Nov 2006)

Hi Leute

wie der Titel schon sagt versuche ich zur Zeit eine ArrayList in einer JSP auszugeben. Leider konte ich bisher noch kein ordentliches Bsp. finden das mir weiter hilft. 
Erst mal die Ausgangslage: mit Servlets und Jsp´s beschäftige ich mich seit ungefähr 2 Monaten mehr hobbymäßig.
Ich habe ein Servlet in dem ich eine Datenbankabfrage durchführe. das ResultSet überführe ich dann in eine ArrayList 
welche in meiner JSP ausgeben werden soll mein erster ansatz ist noch ziemlich verdreht fürchte ich.

Servlet: TransportHandler


```
Resultset rs;
 List<String> list = new ArrayList<String>();
 .
 .
 DB-Abfrage
 .
 .
 // füllen der Liste 

 while(rs.next()){
 list.add(rs.getString("kurzbeschreibung"));
		req.setAttribute("num",  list ); 

 }
 // Aufruf der  JSP
 config.getServletContext().getRequestDispatcher("/todo.jsp")
		    .forward(req, resp);
```
 In der JSP versuche ich das ganze dann so auszugeben:

```
<c:forEach items="${TransportHandler.list}" var="num" >
    <tr>
    <td>${num}</td>  
    </tr>  
  </c:forEach>
```

naja wie gesagt bisher hab ich sowas noch nicht gemacht und der code oben is halt der versuch aus den infos die ich hatte, irgendwas auf die beine zu stellen. Kennt jemand vllt gute Tutorials oder Bücher zu dem Thema, ode kann mir vllt n tipp geben wie mans lösen könnte? 

MfG

derrod


----------



## EOB (14. Nov 2006)

hei, also fuer gewoehnlich macht man das mittels javabeans (keine EJB!). das sind einfach nur klassen, die daten halten, so dass man diese dann einfach abrufen und aendern kann. in deinem fall zb DataBaseBean oder sowas in der art. die klasse hat dann getter und setter methoden, du wuerdest dann eine getter aufrufen, die deine liste liefert. dann in der jsp, greifst du auf die bean zu:


```
<jsp:useBean id="dbbean" class="package.Class" scope="request" />
```

jetzt kannst du mittels dbbean auf alle attribute der bean zugreifen und mittels:


```
<c:forEach items="${dbbean.list}" var="item" >
            
        <c:out value='${item}' />

       
</c:forEach>
```

die liste auslesen. muss natuerlich noch angepasst werden. wichtig ist hierbei, dass die getter und setter so heissen, wie die attribute. also sagen wir mal, du hast folgende klasse (bean):


```
public class Bean{

    private String string = "default";

    public String getString(){
        return string;
    }

    public void setString(String string){
        this.string = string;
    }
}
```

dann ginge es nicht, die setter setS zu nennen, oder so, da es string heissen muss. das ist wichtig, da sonst nicht mittels dbbean.list drauf zugegriffen werden kann. du solltest in der bean selber keine aufrufe an die db senden oder andre funkionalitate drinne haben! dazu wuerde ich ein selvlet nhemen, was dann klassen aufruft, um an die db anfragen zu stellen. man koennte sich ein kleines framework bauen....schau die mal die templatemethode an.

gruesse


----------



## rod (14. Nov 2006)

jo danke für die schnelle hilfe es läuft endlich!


----------



## EOB (14. Nov 2006)

:toll:


----------

