Wie überprüfe ich zwei oder mehr Bedingungen in einem <c: if>?


98

Wie überprüfe ich zwei Bedingungen in einer <c:if>? Ich habe es versucht, aber es wird ein Fehler ausgegeben:

<c:if test="${ISAJAX == 0} && ${ISDATE == 0}"> 

Antworten:


156

Dies sieht aus wie ein Duplikat der JSTL-Bedingungsprüfung .

Der Fehler besteht darin, dass &&der Ausdruck außerhalb liegt. Verwenden Sie stattdessen

<c:if test="${ISAJAX == 0 && ISDATE == 0}">

34

Wenn Sie JSP 2.0 und höher verwenden, wird es mit der EL-Unterstützung geliefert : Damit Sie in einfachem Englisch schreiben und andmit emptyOperatoren Ihren Test schreiben können:

<c:if test="${(empty object_1.attribute_A) and (empty object_2.attribute_B)}">

16

Empfehlung:

wenn Sie mehr als eine Bedingung haben andund orbesser getrennt sind (), um Überprüfungsprobleme zu vermeiden

<c:if test="${(not validID) and (addressIso == 'US' or addressIso == 'BR')}">

1

Nur für den Fall, dass jemand den Zustand von session.Usage of überprüfen muss or

<c:if test="${sessionScope['roleid'] == 1 || sessionScope['roleid'] == 4}">
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.