मैं JSTL के साथ संग्रह के आकार की जांच कैसे कर सकता हूं?
कुछ इस तरह:
<c:if test="${companies.size() > 0}">
</c:if>
मैं JSTL के साथ संग्रह के आकार की जांच कैसे कर सकता हूं?
कुछ इस तरह:
<c:if test="${companies.size() > 0}">
</c:if>
जवाबों:
<c:if test="${companies.size() > 0}">
</c:if>
यह सिंटैक्स केवल EL 2.2 या नए (सर्वलेट 3.0 / JSP 2.2 या नए) में काम करता है। यदि आप XML पार्सिंग त्रुटि का सामना कर रहे हैं क्योंकि आप JSP के बजाय JSPX या फेसलेट का उपयोग कर रहे हैं, तो gt
इसके बजाय का उपयोग करें >
।
<c:if test="${companies.size() gt 0}">
</c:if>
यदि आप वास्तव में ईएल पार्सिंग त्रुटि का सामना कर रहे हैं, तो आप शायद बहुत पुराने ईएल संस्करण का उपयोग कर रहे हैं। आपको fn:length()
तब JSTL फ़ंक्शन की आवश्यकता होगी । से प्रलेखन :
लंबाई (java.lang.Object) - एक संग्रह में वस्तुओं की संख्या, या एक स्ट्रिंग में वर्णों की संख्या देता है।
fn
नाम स्थान की अनुमति देने के लिए इसे JSP पृष्ठ के शीर्ष पर रखें :
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
या यदि आप JSPX या फेसलेट का उपयोग कर रहे हैं:
<... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
और अपने पेज में इस तरह का उपयोग करें:
<p>The length of the companies collection is: ${fn:length(companies)}</p>
तो एक संग्रह की लंबाई के साथ परीक्षण करने के लिए:
<c:if test="${fn:length(companies) gt 0}">
</c:if>
वैकल्पिक रूप से, इस विशिष्ट मामले के लिए आप बस EL empty
ऑपरेटर का उपयोग कर सकते हैं :
<c:if test="${not empty companies}">
</c:if>
जैसा कि @Joel और @ मर्क चोरले ने पूर्व टिप्पणियों में सुझाया है:
${empty companies}
यह अशक्त और रिक्त सूचियों / संग्रहों / सरणियों के लिए जाँच करता है। यह आपको लंबाई नहीं देता है लेकिन यह ओपी में उदाहरण को संतुष्ट करता है। यदि आप इसके साथ भाग सकते हैं तो यह टैग लाइब्रेरी और इसके क्रस्टी सिंटैक्स की तरह आयात करने से साफ है gt
।
आप इस तरह का उपयोग कर सकते हैं
${fn:length(numList)}
${fn:length(companies) > 0}
आकार की जांच करने के लिए उपयोग करें। यह एक बूलियन देता है