Как проверить два или более условий в одном ‹c:if›?

Как проверить два условия в одном <c:if>? Я пробовал это, но это вызывает ошибку:

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

person Selva Kumar K.P.    schedule 02.12.2011    source источник


Ответы (4)


Это выглядит как дубликат условной проверки JSTL.

Ошибка заключается в том, что && находится вне выражения. Вместо этого используйте

<c:if test="${ISAJAX == 0 && ISDATE == 0}">
person olly_uk    schedule 02.12.2011

Если вы используете JSP 2.0 и выше, он будет поставляться с поддержкой EL: так что вы можете писать на простом английском языке и использовать операторы and с операторами empty для написания теста:

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

Рекомендация:

когда у вас есть более одного условия с and и or лучше разделить с (), чтобы избежать проблем с проверкой

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

На всякий случай кому-то нужно проверить условие из сеанса. Использование or

<c:if test="${sessionScope['roleid'] == 1 || sessionScope['roleid'] == 4}">
person A_01    schedule 24.10.2018