# JSTL Problem



## BigInIndonesia (5. Nov 2007)

Ja tach ... und zwar hab ich ein problem mit einer JSP.
eigentlich müßte alles richtig importiert sein und angezeigt werden ....:



```
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:set var="katalog" value="${applicationScope.katalog}" />
<c:set var="warenkorb" value="${sessionScope.warenkorb}" />
<c:set var="isbn" value="${requestScope.isbn}" />

<c:forEach items="${katalog.alleBuecher}" var="buecher">
		
		<tr>
			<td><c:out value="${buecher.buchTitel}" /></td>
			<td><c:out value="${buecher.preis}" /></td>
			<td>Euro</td>
			<td>
...
....
```

Die Methode getAlleBuecher aus der Katalog Klasse gibt eine ArrayList zurück.
Die Jar, JSTL Files sind natürlich im WEBInf ordner drin ....
In der Tabelle ind er ersten Spalte buecher.buchTitel und in der zweiten buecher.preis angezeigt.
Woran kann es liegen das ich weder einen Fehler noch die Variablen zurück bekomme.

Vielen Dank für jegliche Art von Hilfe

till


----------



## byte (5. Nov 2007)

Wenn er nichts anzeigt, könnte es sein, dass entsprechende Variablen nicht existieren bzw. null sind. Hast Du mal im Servlet, dass zu dieser JSP weiterleitet, geprüft, ob katalog, warenkorb und isbn auch existieren bzw. nicht null sind? Im übrigen musst Du das Scope nicht explizit angeben. JSTL sucht automatisch in den vorhandenen Scopes. Solange Du also nicht in verschiedenen Scopes die gleichen Variablennamen verwendest, brauchst Du Dich darum nicht zu kümmern.


----------



## BigInIndonesia (5. Nov 2007)

hi,

also in dem verwendeten servlet wird ein objekt der klasse Katalog erstellt.
das muß doch dann reichen um per applikationScope dann die Methoden von Katalog.class aufzurufen
oder nech=?


----------



## maki (5. Nov 2007)

> das muß doch dann reichen um per applikationScope dann die Methoden von Katalog.class aufzurufen
> oder nech=?


Nö, das reicht nicht.

Du must das Objekt entweder an die Session, den Request oder einen anderen Scope hängen, je nachdem, wo du es brauchst.


----------



## BigInIndonesia (5. Nov 2007)

also zum Beispiel so ...:

			this.getServletContext().setAttribute("katalog", katalog);

und dann können die methoden verwendet werden?


----------



## maki (5. Nov 2007)

Wenn wirf es doch dann lieber in die Session oder besser noch in den request anstatt in den Servletcontext...


----------



## BigInIndonesia (6. Nov 2007)

aber es ist doch eigentlich egal .... bzw. ist es denn theoretisch syntaktisch richtig? wie oben gezeigt speichern ... in den servletContext und dann holen:

```
<c:set var="katalog" value="${applicationScope.katalog}" />
```
so richtig???
obs schön oder sinnvoll ist sei mal außenvor gelassen.
müßte es theoretisch so funktionieren?


----------



## KSG9|sebastian (6. Nov 2007)

Im Servlet:


```
Katalog kat = new Katalog();

request.setAttribute("katalog", kat);
```

Im JSP


```
<c:set var="katalog" value="${katalog}" />
```


----------



## BigInIndonesia (6. Nov 2007)

scheiße dann bekomm ich einen invoke error...
ich bin einfach zu blöd dazu. ich müßte doch aber eigentlich so überprüfen können ob übergaupt irgendetwas ind er variable gespeichert ist:

```
<c:if test="${katalog!= null}">

		[b]
			Katalog ist nicht NULL !!!!
		[/b]
	
	</c:if>
```

aber auch hier wird NIX ausgegeben. ob ich es =! ode == NULL stze .... es passiert nix ... da kann doch irgdendwas generelles nicht stimmer oder?


----------

