2010-08-26 18 views
28

में संग्रह के आकार तक पहुंचें मेरे पास मेरे जेएसपी पेज में services नामक एक सूची चर है। सूची में 1 से अधिक तत्व होने पर मुझे पृष्ठ पर कुछ मार्कअप जोड़ने की आवश्यकता है।जेएसपी/जेएसटीएल/ईएल

मुझे क्या करना है क्या करना चाहते हैं ...

<c:if test="${services.size() gt 1}"> 
    <!-- markup... --> 
</c:if> 

लेकिन आप विधियां प्रारंभ नहीं कर सकता जावा ईएल में वस्तुओं पर (मुझे लगता है कि यह शायद 364,823,782 बार मैं तथ्य यह है कि खेद व्यक्त किया गया है) । आप 'प्राप्त करें' को छोड़कर जावा ऑब्जेक्ट्स पर केवल गेटर्स तक पहुंच सकते हैं। उपयोगकर्ता श्रेणी के लिए $ {user.name} जिसमें getName() विधि है।

इस परीक्षण का मूल्यांकन करने का सही तरीका क्या है?

उत्तर

45

आप fn:length(services) के लिए देख रहे हैं। एफएन नेमस्पेस को परिभाषित करना याद रखें।

http://download.oracle.com/javaee/5/tutorial/doc/bnalg.html

+1

यह सही जवाब है में टैग lib शामिल करें, लेकिन यह जवाब की तरह मैं वास्तव में के लिए हॉपिंग गया था नहीं है। क्या मुसीबत है। ईएल के बजाय हमारे पास ग्रोवी या राइनो क्यों नहीं हो सकते हैं ... –

+0

यह जेएसपी के साथ ही है। मैं दृढ़ता से जेएसएफ और फेसलेट को अपग्रेड करने की सलाह दे सकता हूं। –

+0

[यहाँ] (http://blog.smartkey.co.uk/2009/01/how-to-access-the-size-of-a-collection-in-a-jsp-page-using-jstl-el /) एक ही समस्या के बारे में एक अच्छा ब्लॉग पोस्ट (जो एक ही समाधान के लिए आता है)। मैं सहमत हूं कि जेएसपी/ईएल चूसना है, और विकेट को अपग्रेड करने की सिफारिश कर सकता है। ;-) – Jonik

13

jsp फ़ाइल

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 

उपयोग

<c:if test="${fn:length(services) gt 1}"> 
<!-- markup... --> 
</c:if>