Como posso verificar duas ou mais condições em um <c: if>?

98

Como posso verificar duas condições em uma <c:if>? Tentei fazer isso, mas gerou um erro:

<c:if test="${ISAJAX == 0} && ${ISDATE == 0}"> 
Selva Kumar KP
fonte

Respostas:

157

Isso parece uma duplicata da verificação condicional JSTL .

O erro é ter o &&lado de fora da expressão. Em vez de usar

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

Se você estiver usando JSP 2.0 e superior, ele virá com o suporte EL : para que você possa escrever em inglês simples e usar andcom emptyoperadores para escrever seu teste:

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

Recomendação:

quando você tem mais de uma condição com ande oré melhor separar com ()para evitar problemas de verificação

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

Apenas no caso de alguém precisar verificar a condição da sessão. Uso de or

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