# <c:foreach> verschieden ausgewertet



## wuchermann (17. Apr 2009)

Hallo Zusammen,

folgendes Problem plagt mich:

in meiner JSP Datei, habe ich eine ForEach-Schleife eingebaut:

```
<select id="titel" onchange="onSelect(this)">
  <option value="0">Bitte eine Kategorie wählen</option>

    <c:forEach var="i" begin="1" end="${pet.kategorienAnzahl}">
      <option> <c:out value="${i-1}"/> </option>
    </c:forEach>

</select>
```
Dieses Code Fragment wird bei mir lokal ohne Probleme ausgewertet, wenn "pet.kategorienAnzahl = 0" ist.
Auf einem anderen Server hingegen wird folgender Fehler ausgegeben:
  javax.servlet.jsp.JspTagException: begin (1) > end (0)

Liegt das an unterschiedlichen TomcatVersionen, oder unterschiedlichen Tomcateinstellungen (Fehlerbehandlungen)? Wie kann das sein?

Fragen über Fragen ....
Vielleicht weiss jemand Rat?
Danke im Voraus,
Wucherikovtski


----------



## maki (17. Apr 2009)

> Liegt das an unterschiedlichen TomcatVersionen, oder unterschiedlichen Tomcateinstellungen (Fehlerbehandlungen)? Wie kann das sein?


Ja, könnte daran liegen, oder an den unterschiedlichen Versionen der jars(?), der unterstützten Servlet/JSP Spezifikationen, etc. pp.

Generell empfiehlt es sich auf den exaḱten Versionen und Konfigurationen (letzteres soweit möglich) der Zielplattform (Prod. system) zu entwickeln und zu Testen, denn sonst erlebt man unangenehme Überraschungen.


----------



## gex (17. Apr 2009)

Ich tippe auf die JSTL-Version.

Aber ich würde ohnehin mit begin="0" arbeiten und so sicherstellen, dass begin eben nicht grösser ist als end.


----------



## wuchermann (20. Apr 2009)

Vielen Dank für Eure Antworten,

Ich denke mal, der Sauberkeit wegen komme ich wahrscheinlihckeit nicht drum herum, den Fehler mit ner if-Anweisung abzufangen.

schönen Gruß,
 und vielen Dank nochmal,

wuchermann


----------



## maki (20. Apr 2009)

> Ich denke mal, der Sauberkeit wegen komme ich wahrscheinlihckeit nicht drum herum, den Fehler mit ner if-Anweisung abzufangen.


Das hat nix mit "Sauberkeit" zu tun, ist eher gepfriemel, bzw. Quick&Dirty, wie man es nennen will 

"Sauber" wäre es die Ablaufumgebung für die Serveranwendung zu definieren und sich daran zu halten.


----------

