<c:if> टैग एक एक्सप्रेशन का मूल्यांकन करता है और इसकी बॉडी कंटेंट को केवल तभी प्रदर्शित करता है जब एक्सप्रेशन true मूल्यांकन करता है।
एट्रिब्यूट्स
<c:if> टैग में निम्नलिखित एट्रिब्यूट्स होते हैं:
| एट्रिब्यूट | विवरण | आवश्यक | डिफ़ॉल्ट |
|---|---|---|---|
| test | मूल्यांकन की जाने वाली शर्त | हाँ | कोई नहीं |
| var | शर्त के परिणाम को संग्रहीत करने के लिए वेरिएबल का नाम | नहीं | कोई नहीं |
| scope | शर्त के परिणाम को संग्रहीत करने के लिए वेरिएबल का स्कोप | नहीं | page |
उदाहरण
<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:if> Tag Example</title>
</head>
<body>
<c:set var="salary" scope="session" value="${2000*2}"/>
<c:if test="${salary > 2000}">
<p>My salary is: <c:out value="${salary}"/></p>
</c:if>
</body>
</html>
आउटपुट
My salary is: 4000
मुख्य विशेषताएं
- शर्ती रेंडरिंग: test true होने पर ही बॉडी रेंडर करता है।
- परिणाम संग्रहण:
varऔरscopeबूलियन परिणाम को बाद में उपयोग के लिए संग्रहीत करते हैं। - EL एक्सप्रेशन्स:
testमें जटिल बूलियन एक्सप्रेशन्स का समर्थन करता है। - कोई else नहीं: else लॉजिक के लिए
<c:choose>के साथ<c:when>/<c:otherwise>का उपयोग करें।
उन्नत उदाहरण
<!-- परिणाम संग्रहीत करना -->
<c:if test="${user.role == 'admin'}" var="isAdmin" scope="request">
<p>Admin panel visible</p>
</c:if>
<!-- बाद में उपयोग -->
<c:if test="${isAdmin}">
<a href="/admin">Admin</a>
</c:if>
<!-- जटिल शर्तें -->
<c:if test="${user.age ge 18 and user.country == 'US'}">
<p>Eligible for US voting</p>
</c:if>
तुलना
| विशेषता | <c:if> | <c:choose> |
|---|---|---|
| शाखाएं | एक (if-only) | एकाधिक (when/otherwise) |
| परिणाम संग्रहण | हाँ (var/scope) | नहीं |
| else समर्थन | नहीं | हाँ (otherwise) |
| उपयोग | सरल शर्तें | बहु-शर्त शाखा |