347 Stimmen

Wie man die if-else Option in JSTL verwendet

Gibt es ein If-Else-Tag in JSTL?

0 Stimmen

Möglicher Duplikat von if...else within JSP or JSTL

555voto

skaffman Punkte 389758

Ja, aber es ist richtig umständlich, z. B.

    ...

    ...

    ...

5 Stimmen

Abgesehen vom Wrapper-Tag (choose) sehe ich nicht, wie dies umständlicher wäre als if/elseif/else. Ein Wrapper-Tag allein stellt doch wohl kaum 'unheimlich sperrig' dar, oder?

23 Stimmen

@Steven: Es ist die XML-Natur davon. Es gibt mehr Zeichen im Standardgerüst als im eigentlichen Code.

2 Stimmen

Ah, okay. Das Gleiche könnte dann auch für festgelegt werden.

107voto

laksys Punkte 3108

Zusätzlich zur Antwort von Skaffman können Sie simple if-else den ternären Operator wie folgt verwenden

6 Stimmen

Das ist eine gute Antwort, aber sie hängt stark von der Situation ab, wie nützlich sie sein könnte.

54voto

Es gibt kein if-else, nur if.

 Sie sind über den Berg.

Optional können Sie choose-when verwenden:

    etwas tun

    etwas anderes tun

    dies tun, wenn nichts anderes wahr ist

0 Stimmen

Hallo @iwxfer, Ihr obiger Link ist im Moment nicht verfügbar, bitte aktualisieren Sie ihn, wenn möglich, da Sie eine gute Bewertung haben, ansonsten entfernen Sie ihn.

29voto

jonk Punkte 1476

Ich kam einfach damit davon, nur zwei if-Tags zu verwenden, dachte ich, ich würde eine Antwort hinzufügen, falls es für jemand anderen nützlich ist:

  ...

  ...

auch wenn es technisch gesehen nicht wirklich ein if-else ist, ist das Verhalten dasselbe und vermeidet den umständlichen Ansatz, den choose-Tag zu verwenden, also je nach Komplexität Ihrer Anforderung könnte dies bevorzugt werden.

2 Stimmen

Betrachten Sie den Fall, wenn die Bedingung etwas Kompliziertes und Häßliches ist wie ${not param.age gt 42 und someOtherVar eq 'foobar'}. Sie müssten die Bedingung in einer temporären boolean-Variablen speichern, so dass Sie !condition machen können oder die Umkehrung dieser Bedingung schreiben können. Beides hässlich. Die "andererseits" -Syntax ist eine garantierte Umkehrung.

3 Stimmen

Tatsächlich würde eine komplexe Bedingung entweder eine lokale Variable erfordern oder das Schreiben des Inversen, aber beide Optionen würden immer noch funktionieren. Ich habe klargestellt, dass es davon abhängt, wie komplex die Anforderung ist, ob dieser Ansatz gegenüber dem choose-Tag bevorzugt würde.

2 Stimmen

Ich stimme dem zu. Wenn du nur noch ein anderes hast, ist es weniger Markup als c:choose zu verwenden.

3voto

ankit Punkte 2225

Du musst diesen Code verwenden:

mit <%@ taglib prefix="c" uri="http://www.springframework.org/tags/form"%>

und

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X