Bagaimana cara memeriksa dua atau lebih kondisi dalam satu <c: if>?

98

Bagaimana cara memeriksa dua kondisi dalam satu <c:if>? Saya mencoba ini, tetapi ini menimbulkan kesalahan:

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

Jawaban:

157

Ini terlihat seperti duplikat pemeriksaan bersyarat JSTL .

Kesalahannya adalah memiliki &&ekspresi di luar. Sebagai gantinya gunakan

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

Jika Anda menggunakan JSP 2.0 dan yang lebih baru, Ini akan datang dengan dukungan EL : sehingga Anda dapat menulis dalam bahasa Inggris dan digunakan anddengan emptyoperator untuk menulis tes Anda:

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

Rekomendasi:

ketika Anda memiliki lebih dari satu kondisi dengan anddan orlebih baik dipisahkan dengan ()untuk menghindari masalah verifikasi

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

Untuk berjaga-jaga jika seseorang perlu memeriksa kondisi dari sesi or

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