Jak sprawdzić dwa lub więcej warunków w jednym <c: if>?

98

Jak sprawdzić dwa warunki w jednym <c:if>? Próbowałem tego, ale powoduje to błąd:

<c:if test="${ISAJAX == 0} && ${ISDATE == 0}"> 
Selva Kumar KP
źródło

Odpowiedzi:

157

Wygląda to na duplikat sprawdzenia warunkowego JSTL .

Błąd występuje &&w wyrażeniu zewnętrznym. Zamiast tego użyj

<c:if test="${ISAJAX == 0 && ISDATE == 0}">
olly_uk
źródło
34

Jeśli korzystasz z JSP 2.0 i nowszych, będzie zawierał obsługę EL : abyś mógł pisać prostym językiem i używać andz emptyoperatorami do napisania testu:

<c:if test="${(empty object_1.attribute_A) and (empty object_2.attribute_B)}">
Jules Martel
źródło
16

Rekomendacje:

gdy masz więcej niż jeden warunek z andi orlepiej jest go oddzielić, ()aby uniknąć problemów z weryfikacją

<c:if test="${(not validID) and (addressIso == 'US' or addressIso == 'BR')}">
Joel Estramil
źródło
1

Na wypadek gdyby ktoś musiał sprawdzić stan z sesji or

<c:if test="${sessionScope['roleid'] == 1 || sessionScope['roleid'] == 4}">
A_01
źródło