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}"> 
Selva Kumar KP
quelle

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}">
olly_uk
quelle
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)}">
Jules Martel
quelle
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')}">
Joel Estramil
quelle
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}">
A_01
quelle